java.lang.RuntimeException: 无法实例化活动 ComponentInfo / java.lang.ClassNotFoundException

7
我在我的设备上运行时遇到了这个错误。我一直在浏览问题,我很确定我没有遇到与提到的问题相同的问题。我的两个活动都在AndroidManifest中声明,而且intent过滤器也存在。我没有任何库(除了v4支持库,但是声明它并不会改变问题)。我尝试在我的Manifest中将carpedujourproductions.quickpronote.MainActivity替换为.MainActivity ,但仍然没有运气。我正在运行Android Studio 0.2.5,所以我找不到如何解决与Java Build Path / Order和Export相关的潜在问题的方法。
我注意到我的MainActivity在树中的图标左上角有一个灰色十字标记。
日志输出:
E/AndroidRuntime: FATAL EXCEPTION: main
        java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{carpedujourproductions.quickpronote/carpedujourproductions.quickpronote.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "carpedujourproductions.quickpronote.MainActivity" on path: DexPathList[[zip file "/data/app/carpedujourproductions.quickpronote-2.apk"],nativeLibraryDirectories=[/data/app-lib/carpedujourproductions.quickpronote-2, /vendor/lib, /system/lib]]
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2157)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2281)
        at android.app.ActivityThread.access$600(ActivityThread.java:148)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1263)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:5124)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:525)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
        at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:110)
        at dalvik.system.NativeStart.main(Native Method)
        Caused by: java.lang.ClassNotFoundException: Didn't find class "carpedujourproductions.quickpronote.MainActivity" on path: DexPathList[[zip file "/data/app/carpedujourproductions.quickpronote-2.apk"],nativeLibraryDirectories=[/data/app-lib/carpedujourproductions.quickpronote-2, /vendor/lib, /system/lib]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
        at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
        ... 12 more

随意浏览代码,包括AndroidManifest、MainActivity.java、FirstRun.java等,点击这里


当刷新项目文件时,可能会出现Eclipse构建问题。请参见此处获取可能的解决方案。 - user2554058
5个回答

3

您的MainActivity.java被排除在编译之外,因此该类不包含在.apk文件中。请删除以下行:

<file url="file://$PROJECT_DIR$/src/carpedujourproductions/quickpronote/MainActivity.java" />

.idea/compiler.xml 文件的 excludeFromCompile 部分(或者你可以在IDE设置中进行)排除编译。

谢谢!我现在有其他(小)错误,但你在这个问题上帮了我! - Carp Fisherman

2

这个错误可能有几个原因,根据我的经验我会列举其中的两个。

  • if we have some code lines in resource files that are inserted by SVN Client like smartSVN or tortoise.

    <<<<<<< .mine
        <string name="pathConfiguration">http://jorgesys/app/config_development.xml</string>
    =======    
    
    >>>>>>> .r124
    

    <<<<<<< .mine

    removing that characters:

    <string name="pathConfiguration">http://jorgesys/app/config_development.xml</string>
    
  • Into the .classpath file add the line

    <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
    

这是一个例子:

  <?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
    <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
    <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
    <classpathentry kind="src" path="gen"/>
    <classpathentry kind="output" path="bin/classes"/>
</classpath>

现在它可以正常工作!=)
这将修复异常。

2

我也遇到了同样的问题。清理项目应该可以解决这个问题。


1

我刚刚改变了

compileOptions{
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

compileOptions{
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
}

而它像魔法一样运行了...

1
如果您向项目中添加了其他库,则需要将它们与项目一起导出,以防某些类被排除。
右键单击您的项目并转到“属性”。 在左侧面板上单击Java Build Path并导航到Order and Export选项卡。 您可能需要勾选第三方库以将其添加到构建路径并将其导出到apk。 还要注意,库的顺序也很重要,它们越靠前,在构建apk时具有更高的优先级。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接