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

问题描述 投票:4回答:1

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

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

java.lang.RuntimeException:无法实例化接收器com.inmobi.commons.core.utilities.uid.ImIdShareBroadCastReceiver:java.lang.ClassNotFoundException:未找到类“com.inmobi.commons.core.utilities.uid.ImIdShareBroadCastReceiver”在路径上:DexPathList

我的问题是 - 如果不存在,Android会尝试实例化接收器(或AndroidManifest中定义的其他组件)吗?

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

android crash broadcastreceiver android-manifest android-broadcastreceiver
1个回答
0
投票

1)要解决此问题,您需要确保inmobi.jar和picasso.jar(inmobi需要它)位于libs文件夹中。默认情况下,picasso位于可选文件夹中。你必须将它从可选项移到libs。

另外,对于毕加索你需要添加:将'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

© www.soinside.com 2019 - 2024. All rights reserved.