无法实例化应用程序 – ClassNotFoundException

编辑:这个问题还没有解决在其他build议SO问题

我有一个在市场上一个完整的工作应用程序一年多,崩溃报告很less。 然后最近我把我的应用程序改成了一个库,这样它可以被包含在多个不同的“包装”项目中。 这样我就可以轻松地制作不同的版本 – 免费,付费,非谷歌市场,有/没有应用程序内购买等。

新的“库+包装”应用程序似乎工作正常。 我可以多次运行,没有错误。 但是一天之后(当时大概操作系统已经closures了应用程序的部分或全部活动),我试图运行它,并报告

Unable to instantiate application com.mycompany.mygamelibrary.MyGameApplicationClass: java.lang.ClassNotFoundException: com.mycompany.mygamelibrary.MyGameApplicationClass 

它未能find的类是程序启动时运行的第一个类MyGameApplicationClass,它扩展了Application 。 这个class是图书馆的一部分。

我怀疑在两个清单文件中有一个是愚蠢的。

包装项目的清单包含行…

 <application android:icon="@drawable/mygame_icon" android:screenOrientation="portrait" android:label="My Game Name" android:name="com.mycompany.mygamelibrary.MyGameApplicationClass"> 

任何想法可能会出错?

编辑:图书馆被引用“正确的方式”由约克对这个SO问题的答案定义。

编辑:我现在不能重复崩溃:-(我不知道是什么时候的应用程序不使用一两天的操作系统。

Solutions Collecting From Web of "无法实例化应用程序 – ClassNotFoundException"

有两种可能性。 或者像我一样,在你的清单文件中有一个拼写错误。 让同事或朋友阅读,以确保名称是正确的。 或者你没有正确引用项目。

官方文档介绍了如何在文档中正确链接项目。

为什么它似乎起作用,后来停止工作有点神秘。 不过,我猜测VM可能仍然有必要的引用准备好解决库中的类就好了。 VM的重新启动删除所有这些引用,并试图解决它们是不成功的。

更新:关于OP中的编辑:当您确认您已正确引用其他项目时,您可以检查项目是否包含在APK中,只是为了确保。 您可以重命名并打开一个APK作为任何其他档案(.rar工作正常我)。 有时,这发生在我身上,这个项目没有被正确的包含在APK中。 清理工作区通常会解决问题,因此可能需要重新启动IDE,具体取决于您使用的是什么。 例如,要在Eclipse中手动执行清理,请使用Project->Clean...或者通过右键单击您的项目来尝试Android Tools->Fix Project Properties

由于您似乎也已通过重新启动设备解决了问题,因此可能是库链接不正确。 一个我从来没有见过自己的问题,但作为一个非常普遍的引用说:“你试过关掉它吗?”

你有没有尝试在你的“主”项目中创build一个新的MyGameApplicationClass的子类,并将其设置为应用程序类的清单?

我在Android Studio 3.0 Canary 4中遇到了一些bug,我修正这些bug的方法是通过在应用程序名称中添加一些乱码来编辑AndroidManifest.xml。 然后,我点击构build。 显然,出现了一大堆新的错误信息。 我把名字改回原来的名字,build立了应用程序,然后就运行了。

有时候,我只是不知道…

编辑:刚才在切换到我的笔记本电脑上遇到Android Studio 3.0加那利4这个问题。 我再次经历了改变AndroidManifest.xml文件以包含错字,构build和改回的相同过程。 这没有用。

然后我注意到即时运行仍然启用。 进入设置(通过点击命令+,(逗号键)),然后input“即时运行”,我可以禁用即时运行,build立应用程序,并找不到类的错误消失。

修复步骤摘要[对我]

  1. 使caching/重新启动失效
  2. 清理项目
  3. 手动删除生成文件夹(需要在此项目视图中)
  4. 对AndroidManifest.xml文件进行故意错误的编辑,编译应用程序,观察错误,删除错误的编辑并重新编译
  5. 禁用即时运行

再次,我并不是暗示这会解决所有人的错误,但是现在我已经在两台不同的机器(MacOS Sierra)上使用了这些步骤的组合,并且已经为我解决了。 希望能帮助到你。

对于Android Studio:

Build – > Clean Project

修复了问题。

可能是其构buildpathconfiguration问题。我做了以下解决这个问题。

1.右键单击您的项目并转到Java Build Path。

2.点击订单和导出标签。

3.如果已添加,请检查Android专用库和其他第三方库。

4.按确定并清理项目。 我希望它能解决这个问题。

一旦我有相同的错误信息,但也许原因是不一样的。

我做了一段代码,工作了一段时间,然后我想改进它,并得到相同的错误,我无法运行它。

我可以解决这个问题

  • 正确的构buildpath顺序(正如我可以看到你已经做到了这一点)
  • 我检查订单和导出选项卡android-suppor-v4.jar
  • 关键是Android SDK Managert->升级所有内容(下一步)Eclipse->帮助 – >检查更新。

我升级到最新的android插件和SDK后,我的应用程序编译并再次运行。

我希望这能帮到您!

我对此不太确定,但可能是因为系统的debug.keystore许可证有效期已过,因为它仅有365天有效期。 您只需要从计算机中删除debug.keystore。 当您编译您的Android应用程序时,debug.keystore将由Eclipse自动生成。

看到相同的消息…这一次结果是在构buildpath中的MyApp / gen和MyApp / src的不同输出文件夹(由Maven集成引起)。

取消选中“允许源文件夹的输出文件夹”解决了这个问题。

我在Android应用程序中遇到了这个问题,这个应用程序需要在Android Studio项目中创build错误path的应用程序类。 当我将类文件移动到正确的包时,它已经修复。

在我的情况下, 应用程序ID是不匹配的。 这应该与以下图像中显示的相同…

AndroidManifest.xml中

在这里输入图像说明

应用程序/的build.gradle

在这里输入图像说明

在这种情况下你可以看到, applicationIdpackage都是一样的,就是com.mycompany.mygamelibrary

这一切的进程工作,为我解决应用程序类exception。

步骤1:打开运行(窗口+ R)search – >预取删除所有文件(某些文件不能删除)

步骤2:打开运行(窗口+ R)search – >%temp%删除所有文件(某些文件不被删除)

第3步:打开Android Studio – > Build – > Clean Project

要么

select文件>失效caching/重新启动>失效并从Android Studio工具栏重新启动。

要么

closures并重新打开Android项目。

要么

重新启动系统