飞翔的企鹅 发表于 2021-7-20 12:01:27

关于安卓类库一些问题,使用后致使原有功能出现异常

本帖最后由 飞翔的企鹅 于 2021-7-20 12:08 编辑

先列举一些遇到的问题:

http://bbs.voldp.com/forum.php?m ... 7%E5%9B%BE%E7%89%87


这种问题是由于某些类库,编译时需求的安卓SDK等级较高,这个编译SDK等级决定了编译后程序的一个表现等级(目标安卓平台SDK的API级别)
这个表现等级决定了你在程序中使用某些高等级系统才拥有的API时,将会受到系统的限制或控制,譬如在使用一些手机应用时经常会见到这种权限授权警告提示:


为什么会弹出这种警告提示呢,因为安卓随着版本迭代,各种对手机隐私的权限逐渐收紧,再不能像以前一样自由的使用手机上任何的功能,如上图所示,枚举储存卡中的文件列表,就需要在运行时获取权限,即需要取得用户的允许或同意,才可以正常的获取到文件列表。
这里可以看一下对运行时权限的科普:https://blog.csdn.net/u014626094/article/details/80962051


火山的类库为了照顾新手,一些需要用到高等级系统API的库,会自动变更当前项目的编译等级(目标安卓平台SDK的API级别),以防项目编译失败,这就导致了编译后你的应用目标等级比较高(大于等于23)时,如果再像以前一样直接去使用一些需要运行时授权的代码时,程序会出现崩溃,异常。


最后解决方案:
仔细阅读"权限窗口"类上面的注释内容,可使用"兼容窗口"代替原有的"窗口"作为基础类,处于"自动特性兼容支持"模块中,随后可在该窗口中申请指定的权限,使用户对其进行授权,另外也有专门申请这类权限的支持库,在"运行时权限工具类"中。


最后希望大家学习时多阅读 类/方法上面的中文注释内容,以及火山开发平台自带的系统例程,这些内容通常都是类库封装(开发)作者的全部经验所在,掌握这些内容是非常有必要的。




Q:如何查看自己程序的编译等级?
A:在程序编译阶段即可看见,下图所示:



最后,以上列出来该问题帖子(http://bbs.voldp.com/forum.php?m ... 7%E5%9B%BE%E7%89%87)的解决过程:





伟业 发表于 2021-7-20 15:58:39

学习:):):)

xqnh520 发表于 2021-7-20 20:01:31

加油。。
页: [1]
查看完整版本: 关于安卓类库一些问题,使用后致使原有功能出现异常