安卓studio开发常见问题汇总

前言:主要是分类整理一些奇怪的异常,免的以后遇到了再次百度,后续会不断增加。。。


应用安装时出现的问题

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版本不一致

  1. 如果是非第三方库导致的support版本不一致,修改为一致的即可(不推荐)
  2. 如果是第三方库导致的不一致,那么在冲突的第三方库的build.gradle,添加
     {
        exclude group: 'com.android.support'
    }
     group:表示只要包含com.android.support的都除去 
  3. 当然如果第三方库的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()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值