[日常问题]升级gradle后renderscript出现android.os.DeadObjectException

起因

项目需要新功能,于是提高了targetSdkVersion
然后需要升级gradle才能用
于是乎就去升级gradle了

一番折腾后,终于升级好了
然后解决一大堆问题比如:新的gradle需要jdk8才能用,ndk不生成新的库的话,需要限定项目支持的ndk,gradle task任务修改,jvm内存不够等等

最后运行项目却发现部分手机在用到renderscript的地方会出现android.os.DeadObjectException
然后用排除法确定了就是renderscript的问题
然后回忆起构建的时候会出现一些警告

warning: Linking two modules of different data layouts: '/Users/AndroidStudio/android-sdk-macosx/build-tools/25.0.0/renderscript/lib/bc/mips/libclcore.bc' is 'e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64' whereas '../publish/release/raw/stackblur.bc' is 'e-p:32:32-i64:64-v128:64:128-n32-S64'

warning: Linking two modules of different target triples: '/Users/AndroidStudio/android-sdk-macosx/build-tools/25.0.0/renderscript/lib/bc/mips/libclcore.bc' is 'armv7--linux-android' whereas '../publish/release/raw/stackblur.bc' is 'armv7-none-linux-gnueabi'

然后google发现删除就可以解决这个问题

renderscriptSupportModeEnabled true

经过测试,删除后确实解决了崩溃的问题,页面也可以正常显示了
但是由于项目配置是这样的

minSdkVersion 14
targetSdkVersion 23
renderscriptTargetApi 18
renderscriptSupportModeEnabled true

并且也用到了renderscript Api18
所以删掉之后在api14-17的本来正常的手机上,也出现了崩溃的问题

最后经过一系列研究renderscript,确定自己代码没有问题后,回忆自己的改动,再尝试回退到distributionUrl=https://services.gradle.org/distributions/gradle-3.3-all.zip
之后,终于正常了,升级后的gradle为4.1,回退就正常了

结论

后来又和专门研究过gradle的大神朋友讨论了一番,他之前也发现gradle4.1存在其他bug,建议我不要用4.1的就行了,而且as本身也不提示建议更新到4.1

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值