Android 运行时异常

1 < a href=’ '>Rerun</ a>

完整日志是

Install failed.
Installation failed
< a href=' '>Rerun</ a>

产生这个问题是有很多原因的,具体看EventLog才是关键
出现这个问题我的EventLog是这样的:

Failed to commit install session 639684911 with command cmd package install-commit 639684911. Error: INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113

很明显是ndk的依赖包出问题了。确实如此,gradle配置了armeabi-v7a和x86,而jniLibs中只添加了armeabi-v7a,再引入x86的包问题解决

2 is not accessible from

我遇到的异常详情是

Caused by: java.lang.IllegalAccessException: java.lang.Class<com.fullcat.demo.b.MainActivity> is not accessible from java.lang.Class<android.app.Instrumentation>

是因为写MainActivity时候忘记加public了

3 Not allowed to bind to service Intent

在做aidl时出现的,是由于service标签没有添加

android:exported="true"
4 Unresolved reference
  1. 这个是在项目做组件化拆分是遇到的问题,是由于新module的gradle中忘记添加
    apply plugin: 'kotlin-android'
    apply plugin: 'kotlin-android-extensions'
    
  2. kotlin项目提取公共的xml到base_module后,原module获取不到该xml中view的id。
    原因是由于kotlinx.android.synthetic.main是从当前的R文件中获取id的,因此使用其他module中的xml时需要使用findViewById手动获取
5 DataBinderMapperImpl

完整log是

Caused by: java.lang.ClassNotFoundException: Didn't find class "android.databinding.DataBinderMapperImpl"

组件化项目转化MVVM架构师遇到的,需要再每个module都添加

dataBinding {
        enabled = true
    }
6. error: resource android:attr/fontVariationSettings not found

把编译版本由27改成28

7. This file can not be opened as a file descriptor; it is probably compressed

出现这个问题是加载 assets 中的一个.tflite文件的时候报的错,这是因为.lite文件被压缩了,解决这个问题需要再gradle中添加如下代码:

android {
	...
	aaptOptions {
        noCompress "tflite"  //表示不让aapt压缩的文件后缀
    }
	...
}
8. dlopen failed: cannot locate symbol “__aeabi_memcpy” referenced by

这个问题有点奇怪,是在我加载一个已经打好的.so库是出现的,而该.so在其他项目中是OK的。额…不管引起的原因是啥,直接说解决方法吧。
我的 Application.mk 中有这样一个语句:

APP_PLATFORM := android-8

但在我的ndk目录下的 platforms 文件夹下并没有android-8对应的版本号,将上面的语句改成platforms下存在的版本号即可。

9. NullPointerException: Attempt to invoke virtual method ‘int com.huawei.lcagent.client.LogCollectManager.getUserType()’ on a null object reference

这个是华为手机特有的问题,原生是华为系统对日志进行了拦截,导致我们不能正确定位到报错的位置,要想显示原有的log需要如下操作

  • 拨号界面输入 *#*#2846579#*#*
  • 进入工程菜单–>后台设置–>LOG设置–>LOG开关 把几个复选框都勾选,这样就可以显示log了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

得食猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值