在Android中更改应用程序名称后的ClassNotFoundException

我有一个名为com.quarlityaq.quarlityaqcall.QuarlityaqCall的主类应用程序.

完成编程后,我将应用程序名称更改为“JCall for jobs”
通过将strings.xml下的app_name更改为“JCall for jobs”

android:label="@string/app_name"   
android:name="@string/app_name"

在我的设备上它工作得很好,但在其他一些设备上崩溃和抛出:

java.lang.RuntimeException: Unable to instantiate application com.quarlityaqcall.QuarlityaqCall.JCall for jobs: 
java.lang.ClassNotFoundException: com.quarlityaqcall.QuarlityaqCall.JCall for jobs 
in loader dalvik.system.PathClassLoader[/data/app-private/com.quarlityaqcall.QuarlityaqCall-1.apk]


Caused by: java.lang.ClassNotFoundException: 
com.quarlityaqcall.QuarlityaqCall.JCall for jobs in loader
dalvik.system.PathClassLoader[/data/app-private/com.quarlityaqcall.QuarlityaqCall-1.apk]

我不明白为什么它会找到类名“JCall for jobs”而不是“QuarlityaqCall”,以及它为什么只在某些设备上发生?

最佳答案 清单中的应用程序名称是指您的Application类.如果您尚未实现自己的Application类,则不应在清单文件中包含name属性.如果您已实现了一个,则应确保该属性引用正确的类.

您不应将name属性导出到strings.xml,因为它是您应用的技术参数.标签是用户可见的标签.

点赞