android - 无法实例化应用程序 - ClassNotFoundException

标签 android

编辑:此问题尚未在其他建议的 SO 问题中得到解决

我的应用程序在市场上运行了一年多,但几乎没有崩溃报告。然后最近我将我的应用程序更改为一个库,以便它可以包含在多个不同的“包装器”项目中。这样我就可以轻松制作不同的版本——免费、付费、非谷歌市场、有/没有应用内购买等。

新的“库+包装器”应用似乎运行良好。我可以多次运行它,没有错误。但是一天后(大概是操作系统关闭了应用程序的部分或全部 Activity )我尝试运行它并报告了

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

它找不到的类是程序启动时运行的第一个类,MyGameApplicationClass - 它扩展了 Application。这个类是库的一部分。

我怀疑这两个 list 文件之一中有一些愚蠢的东西。

wrapper 项目的 list 包含这些行...

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

有什么想法会出错吗?

编辑: yorkw 对 this SO question 的回答所定义的“正确方式”引用了该库。 .

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

最佳答案

有两种可能。要么你像我一样,在你的 list 文件中有拼写错误。请同事或 friend 阅读以确保名称正确。或者你没有正确引用项目。

官方文档在its documentation中描述了如何正确链接项目.

为什么它首先看起来有效,然后停止工作,这有点神秘。但是,我猜想 VM 可能仍然有必要的引用准备好解析库中的类。重新启动 VM 会删除所有这些引用,但尝试解决它们是不成功的。

更新:关于 OP 中的编辑:当您确认您已正确引用其他项目时,您可以检查该项目是否包含在 APK 中,以确保。您可以像任何其他存档一样重命名和打开 APK(.rar 对我来说很好用)。有时,它发生在我身上,该项目未正确包含在 APK 中。清理工作区通常可以解决问题,根据您使用的内容,重新启动 IDE 也可以解决问题。例如,要在 Eclipse 中手动进行清理,请使用 Project->Clean... 或通过右键单击您的项目尝试 Android Tools->Fix Project Properties

由于您似乎也通过重新启动设备解决了该问题,因此可能是库链接不正确。一个我自己从未见过的问题,但正如一句非常常见的名言所说:“您是否尝试过将其关闭再打开?”。

关于android - 无法实例化应用程序 - ClassNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17965707/

相关文章:

android - IntentFilter 无法接收 Serializable 但适用于 String

android - 在Android中实现 "Thumbs down/Thumbs up"切换按钮的方法

android - 检查 APK 扩展 obb 有效性的最佳实践

java - "Unable to start activity ComponentInfo"错误

android - Sonarqube 整体覆盖范围与 jacoco 报告覆盖范围不匹配

java - 舞台不工作的 Libgdx 视口(viewport)

java - Android 编辑文本 mask

android - 如何制作更小的 RatingBar?

android - 在 android 4.3+ 的 textview 中缺少一些字母和数字

java - 线程状态监视器。我该如何调试?是什么原因造成的?