java.lang.RuntimeException:无法实例化接收器(未找到类)

时间:2016-08-25 07:33:17

标签: android crash broadcastreceiver android-manifest android-broadcastreceiver

我们正在使用第三方库进行广告调解,在其清单中声明不同的活动,接收者和服务。并非所有这些都将在应用程序中实际实现。

我已经开始看到来自我们应用的用户的例外情况:

  

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中定义的其他组件)吗?

我没有找到任何描述此特定方案的文档。

1 个答案:

答案 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