Android项目中嵌入RN常见问题汇总

问题一

Caused by: java.lang.IllegalAccessError: Method 'void android.support.v4.net.ConnectivityManagerCompat.<init>()' is inaccessible to class 'com.facebook.react.modules.netinfo.NetInfoModule' (declaration of 'com.facebook.react.modules.netinfo.NetInfoModule' appears in /data/app//base.apk:classes20.dex)

解决方式:
RN兼容v7包的问题,将SDK编译版本改成23,v7包换成23.0.1

问题二
so文件问题,在项目的defauleConfig中添加
在app/src/build.gradle中添加
ndk {
abiFilters “armeabi-v7a”, “x86”
}
如果项目中不支持ndk,在gradle.properties中添加android.useDeprecatedNdk=true"

问题三
混淆冲突问题

Warning:okhttp3.internal.huc.DelegatingHttpsURLConnection: can't find referenced class org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
Error:Execution failedfortask :transformClassesAndResourcesWithProguardForRelease'. > java.io.IOException: Please correcttheabovewarningsfirst.

这个问题是在说你在混淆打包的时候有些类有可能找不着,所以会包错,和warning
解决的办法:
找到报warning的类都给他在你的proguard-rules.pro混淆器文件中
添加代码-dontwarn 包名+类名.给取消掉warning就可以了,如果你不想那个类被混淆,那就添加代码:-keep class 包名+类名{*;}或者包名.{*;}
我的问题是出现了RN和OKhttp3的问题,所以讲OKhttp3的警告给忽略掉

-keep class com.facebook.**{*;}   禁止混淆RN
-dontwarn okhttp3.**    忽略OKHttp的报错

因为RN内部依赖了okHttp,所以会出现这个问题

此博客会持续更新,记录开发RN的过程中踩过的坑。。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值