前言:主要是分类整理一些奇怪的异常,免的以后遇到了再次百度,后续会不断增加。。。
应用安装时出现的问题
1. 在覆盖安装应用时出现解析错误
检查在安装应用时,是否有sdcard读写权限!
2. 应用下载更新时,下载完毕后未自动安装
检查应用是否做了安卓8.0适配,在安装的时候需要开启未知来源安装权限
3. 应用在覆盖安装时出现应用未安装(多出现在通过内部存储进行安装)
可能出现问题的原因比较多。。。
1. 应用签名可能不一样
2. 更新的应用的target版本低于原来的版本
3. 应用签名时,选择的signature version:没有勾选V1
4. 通过build>>Build Apk(s),再使用adb进行安装
4.通过run生成安装应用时,安装时出现INSTALL_FAILED_TEST_ONLY
上面意思是通过run会在build文件夹下生成应用,用该apk文件进行安装时出现INSTALL_FAILED_TEST_ONLY
至于直接通过run进行adb调试是否会出现INSTALL_FAILED_TEST_ONLY目前不清楚
按照字面意思:不允许我们调用者运行【测试版】的程序。
以下文字为studio官网说明:
Note: The Run button builds an APK with testOnly="true", which means the APK can only be installed via adb (which Android Studio uses). If you want a debuggable APK that people can install without adb, select your debug variant and click Build > Build APK(s).
意思是只要通过run进行构建的apk就是testOnly的,只能通过adb进行安装,若不通过adb,则必须通过Build > Build APK(s)。
而我通过打包程序进行打包也是可以的,比如AssembleDebug、AssembleRelease也是可以的。
解决方法:
1. 通过Build > Build APK(s),
2. 使用 AssembleDebug、AssembleRelease命令打包apk
以上两种方法打包出应用后,再使用adb命令安装应用
项目编译时候出现的问题
1. 项目编译时提示support版本不一致
- 如果是非第三方库导致的support版本不一致,修改为一致的即可(不推荐)
- 如果是第三方库导致的不一致,那么在冲突的第三方库的build.gradle,添加
{ exclude group: 'com.android.support' } group:表示只要包含com.android.support的都除去
- 当然如果第三方库的support比较多,第二种也是比较麻烦的,可以使用
configurations { all*.exclude group: 'com.android.support', module: 'support-v13' }表示排除掉当前module下引入的所有的support库,我们使用自己的support库即可
运行时异常
1. java.lang.IllegalStateException: Could not find method updateDatas(View) in a parent or ancestor Context for android:onClick attribute defined on view class androidx.appcompat.widget.AppCompatButton
该异常是在fragment中为view设置点击事件出现的,原因是Fragment不是布局器,不具备渲染视图的能力, 要为view设置点击事件,可以使用getActivity().findVIewById().setOnClickListener()