Java Android:无法实例化应用程序
我重命名了我的软件包,现在出现了一个奇怪的错误:Java Android:无法实例化应用程序,java,android,intellij-idea,Java,Android,Intellij Idea,我重命名了我的软件包,现在出现了一个奇怪的错误: 无法实例化应用程序 app.MyApplication:java.lang.ClassNotFoundException: loaderdalvik.system.PathClassLoader中的app.MyApplication MyApplication类位于Application/app中。舱单上写着: 确保清单中的所有引用都已更新,以反映您的新软件包名称。是否应package=“Application”为package=“MyAp
无法实例化应用程序
app.MyApplication:java.lang.ClassNotFoundException:
loaderdalvik.system.PathClassLoader中的app.MyApplication
MyApplication
类位于Application/app
中。舱单上写着:
确保清单中的所有引用都已更新,以反映您的新软件包名称。是否应package=“Application”
为package=“MyApplication”
?您需要更正android:name
属性。在中提到的相同问题,让我们假设您的项目基本包实际上是应用程序
,正如您在清单
中所述
如果您的MyApplication
类在此包中(该类的包声明为package Application;
),则androidManifest.xml
中的Application
元素应该如下所示
<application android:name=".MyApplication" [...]
如果您没有扩展android.app.Application
(您没有MyApplication扩展android.app.Application
类),只想为应用程序设置一个名称,请将其删除此属性,因为它告诉编译器有一个应用程序
扩展,应该实例化它,而不是默认的android.app.Application
最后,如果第一个假设是错误的,并且您出于任何原因更改了androidManifest的manifest
元素中的包声明,请撤消它或更新您的类以使其位于该包中。这个答案帮助了我,如果您使用的是SDK 17,基本上将您的lib重命名为libs+
在我的例子中,我已经将JAVA编译器遵从性级别从1.7更改为1.6,问题得到了解决。简单地清理项目并重建。对我来说,问题在于即时运行。禁用它解决了这个问题
如果我找到重新启用并使其工作的解决方案,将更新。删除这些行对我来说很有用:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
更新:
这个问题背后的原因是我没有在我的电脑上安装JAVA 8,因为我的电脑会抛出:
Caused by: java.lang.IllegalAccessException: java.lang.Class<foo.bar.MyApp> is not accessible from java.lang.Class<android.app.AppComponentFactory>
而不是:
class MyApp extends Application {
}
对我来说,问题是由于类的访问级别,它必须是公共的您的回答是正确的。我有一个定制的android.app.Application(MyApplication)。我忘记的是应用程序之前的领先
。我的应用程序
我很高兴你成功了,很高兴能进一步编码@MichałK+1对于上面的评论,Eclipse重启对我来说很有效!1.阅读问题(是的,全部)2。这个问题在三年前就得到了确切的回答。欢迎来到我的SEIt作品。我的项目没有修改任何内容,它是突然发生的。删除生成文件夹后,再次运行,问题解决。这是android studio的一个bug。android studio团队仍然没有解决这个问题。这应该是公认的答案。Instant run产生了问题。为了禁用Instant run->Settings和write Instant run,我启用了Instant run
public class MyApp extends Application {
}
class MyApp extends Application {
}