Android java.lang.RuntimeException:无法实例化活动组件信息

Android java.lang.RuntimeException:无法实例化活动组件信息,android,Android,好了,伙计们,这对我来说毫无意义,我不明白为什么我的应用程序会出现这个错误。我已经在android manifrest xml中注册了activity类 java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.mobile.batteryhelper/com.mobile.batteryhelper.Battery}: java.lang.ClassNotFoundException: Caused

好了,伙计们,这对我来说毫无意义,我不明白为什么我的应用程序会出现这个错误。我已经在android manifrest xml中注册了activity类

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.mobile.batteryhelper/com.mobile.batteryhelper.Battery}:
java.lang.ClassNotFoundException: Caused by: java.lang.ClassNotFoundException: com.mobile.batteryhelper.Battery in loader dalvik.system.PathClassLoader[/mnt/asec/com.mobile.batteryhelper-1/pkg.apk]
以下是androidmanifest.xml。是的。电池类也扩展了活动

<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".Battery"
              android:label="@string/app_name"
               android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>


您是否尝试过清理您的工作区。转到项目->清理并选择您的项目。由于某些原因,eclipse不会自动生成我的清单。

清单包不是com.mobile.batteryhelper,或者代码中没有com.mobile.batteryhelper.Battery类。可能您没有该类的公共构造函数,或者该类没有声明为public(尽管我认为在这种情况下,您会得到稍微不同的错误消息)


确保您没有使用ProGuard删除代码。确保该类是公共的,在正确的包中(与清单包相同),并且没有构造函数。此外,如果错误堆栈中有有用的内容,查看整个错误堆栈爬网也会很有用。

在调用OnCreate之前,您是否尝试过初始化类中的任何内容?

如果你初始化静态变量(例如),它会给你这个(令人恼火的迟钝)错误。

事实上,我在这里找到了相同问题的答案:

您不提供应用程序标记的名称,只提供活动。因此,如果您的问题与我的问题相同,您应该能够删除以下内容,并且这些内容将起作用:

android:name=“.Battery”


右键单击电池类>构建路径>排除 然后
右键单击您的电池类>构建路径>再次包含您的类

您已将第三方库放入库文件夹并引用它们。转到属性/Java构建路径/Libraries/addexternaljar


检查Properties/Java Build Path/Order中的Jar文件并导出

我发现了这个问题,并通过将所有放在“lib”文件夹中的.Jar文件(外部库文件)移动到“libs”文件夹来修复它。不知怎的,eclipse只知道放在libs文件夹中的.jar文件,请仔细查看崩溃日志:

loader dalvik.system.PathClassLoader[/mnt/asec/com.mobile.batteryhelper-1/pkg.apk
这里的
mnt
表示外部SD卡

通常,当在中设置了
android:installLocation=“auto”
时 如果设备没有足够的手机内存,则 应用程序将存储在SD卡上。从中卸下SD卡后 设备、应用程序找不到APK位置,然后应用程序崩溃

产生崩溃的步骤:

问题能够在HTC sensation 2.3.4版本中复制

  • 通过转到将应用程序移动到SD卡 设置-->管理应用程序->单击应用程序-->移动到SD卡
  • 从设备中卸下SD卡并打开应用程序

如果您尝试使用三星设备,它不会崩溃,但如果您卸下SD卡,它不会显示应用程序。这种行为仅适用于少数设备。

我也有同样的问题。这是一个相当令人困惑的错误,直到我找到了出路。转到属性>Java构建路径>订购和导出,并将您的android-support-v4.jar移到顶部。这对我很管用。试试看。

我也遇到了同样的问题,我通过更新ADT插件解决了这个问题。

你可以从你的手机或模拟器上删除这个应用程序。

对我有效的方法是删除“build”文件夹中最里面的文件,这些文件是生成的、中间的、输出的、,和tmp。

用户766380如果有答案解决了您的问题,请将其标记为已接受。对我来说,解决方案是:谢谢,我猜进入Project>Clean就成功了!Eclipse有时不自动构建清单,这有什么原因吗?我不知道。我想这只是它的一个怪癖。我将来可能会提交一份bug报告。