我重命名了我的包,现在我得到了这个奇怪的错误:
Unable to instantiate application
app.MyApplication: java.lang.ClassNotFoundException:
app.MyApplication in loaderdalvik.system.PathClassLoader
MyApplication
类是用Application/app
编写的。清单上写着:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="Application">
<application
android:label="AGG"
android:name="app.MyApplication"...
我尝试重新启动,干净的构建。Is不能在模拟器上工作,也不能在真实设备上工作。
这到底是怎么回事?
发布于 2011-05-03 00:14:31
让我们假设,正如您在manifest
中所述,您的项目基包实际上是Application
。
如果您的MyApplication
类在这个包中(该类的包声明是package Application;
),那么androidManifest.xml
中的application
元素应该如下所示
<application android:name=".MyApplication" [...]
如果这个MyApplication
类在Application.app
包(package Application.app;
)中,那么您应该在清单中这样写:
<application android:name=".app.MyApplication" [...]
如果您没有扩展android.app.Application
(您没有MyApplication extends android.app.Application
类),只是想为您的应用程序设置一个名称,删除它的这个属性,因为它告诉编译器有一个应该实例化的Application
扩展,而不是默认的android.app.Application
。
最后,如果第一个假设是错误的,并且您出于任何原因更改了androidManifest的manifest
元素中的包声明,则撤消它或更新您的类以使其位于该包中。
发布于 2017-01-27 23:15:59
对我来说,问题在于即时运行。禁用它解决了问题。
如果我找到重新启用并使其工作的解决方案,我将更新。
发布于 2012-05-08 00:26:52
这个答案对我很有帮助,如果你正在使用SDK 17+ https://stackoverflow.com/a/10176048/46459,基本上就是把你的lib重命名为libs。
https://stackoverflow.com/questions/5859261
复制相似问题