我们正在使用第三方库进行广告调解,在其清单中声明不同的活动,接收者和服务。并非所有这些都将在应用程序中实际实现。
我已经开始看到来自我们应用的用户的例外情况:
java.lang.RuntimeException:无法实例化接收器 com.inmobi.commons.core.utilities.uid.ImIdShareBroadCastReceiver: java.lang.ClassNotFoundException:没找到类 “com.inmobi.commons.core.utilities.uid.ImIdShareBroadCastReceiver”上 path:DexPathList
我的问题是 - 如果Android不存在,Android会尝试实例化接收器(或AndroidManifest中定义的其他组件)吗?
我没有找到任何描述此特定方案的文档。
答案 0 :(得分:0)
1)要解决此问题,您需要确保inmobi.jar和picasso.jar(inmobi需要它)位于libs文件夹中。默认情况下,picasso位于可选文件夹中。你必须将它从可选项移到libs。
另外,对于毕加索你需要加上这个:compile' com.squareup.picasso:picasso:2.5.2'到build.gradle文件。
此外,如果您使用proguard文件,则需要为inmobi添加以下内容:
-keep class com.inmobi.** { *; }
-dontwarn com.inmobi.**
-dontwarn com.squareup.picasso.**
-keep class com.squareup.picasso.** {*;}
-dontwarn com.squareup.picasso.**
-dontwarn com.squareup.okhttp.**
-keep class com.moat.** {*;}
-dontwarn com.moat.**
2)如果您没有使用上面指定的构建类型,则需要启用multidex。然后你必须使用nodex build。适用于Android原生的最新nodex版本为here
您可以找到文档here