Android:无法实例化应用程序

时间:2011-05-02 15:50:01

标签: java android intellij-idea

我重新命名了我的包,现在我收到了这个奇怪的错误:

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"...

我试过重新启动,清理内置。是在模拟器上还是在真实设备上不起作用。

地球上发生了什么?

11 个答案:

答案 0 :(得分:25)

我们假设您的项目基础包真的是Application,正如您在manifest中所说的那样。

如果您的MyApplication类在此包中(该类的包声明为package Application;),那么application中的androidManifest.xml元素应该如下所示

<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元素中因为任何原因更改了包声明,请将其撤消或更新您的类以包含在该包中。

答案 1 :(得分:9)

对我来说,问题在于即时运行。禁用它解决了这个问题。

如果我找到重新启用并使其正常工作的解决方案,则会更新。

答案 2 :(得分:3)

这个答案帮助了我,如果你使用SDK 17+,基本上将你的lib重命名为libs https://stackoverflow.com/a/10176048/46459

答案 3 :(得分:2)

就我而言,我已将JAVA编译器合规性级别从1.7更改为1.6,问题已解决。

答案 4 :(得分:1)

确保清单中的所有引用都已更新,以反映您的新包名称。

答案 5 :(得分:1)

package="Application"package="MyApplication"吗?

答案 6 :(得分:1)

您需要更正android:name属性。 ClassNotFoundException after changing app's name in Android

提到了同样的问题

答案 7 :(得分:0)

删除这些行对我有用:

compileOptions {
   sourceCompatibility JavaVersion.VERSION_1_8
   targetCompatibility JavaVersion.VERSION_1_8
}

更新
此问题背后的原因是我尚未在PC上安装JAVA 8

答案 8 :(得分:0)

我一天都遇到了这个问题,终于解决了,我在Application类声明中犯了一个错误,您需要像这样将您的应用程序类设置为public:

公共类AppController扩展了Application { }

我的代码有误: AppController类扩展了Application { }

答案 9 :(得分:0)

对我来说,问题是由于班级的访问级别而定,必须是公开的

答案 10 :(得分:-1)

简单清理项目并重建。