7

在我的设备上运行时出现此错误。我一直在浏览这个问题,我很确定我没有遇到上述相同的问题。我的两个活动都在 AndroidManifest 中声明,并且意图过滤器在那里。我没有任何库(除了 v4 支持库,但声明它不会改变问题)。我尝试在我的清单中替换为carpedujourproductions.quickpronote.MainActivity.MainActivity但仍然没有运气。我正在运行 Android Studio 0.2.5,所以我找不到如何解决与 Java 构建路径/顺序和导出相关的潜在问题

我不禁注意到树中我的 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 等。

4

5 回答 5

3

MainActivity.java被排除在编译之外,所以这个类不包含在 .apk 中。删除行:

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

从文件的excludeFromCompile部分.idea/compiler.xml(或者您可以从 IDE 设置中执行此操作)。

于 2013-08-30T12:41:58.453 回答
2

这个错误可能有几个原因,根据我的经验,我暴露了其中两个。

  • 如果我们在资源文件中有一些由 SVN 客户端(如 smartSVN 或乌龟)插入的代码行。

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

    <<<<<<< .mine

    删除该字符:

    <string name="pathConfiguration">http://jorgesys/app/config_development.xml</string>
    
  • .classpath文件中添加行

    <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>

现在它起作用了!=)

它将修复异常

于 2014-01-30T18:24:36.707 回答
2

我有同样的问题。清理项目应该可以解决问题

于 2014-04-05T23:40:04.217 回答
1

如果您将其他库添加到您的项目中,您需要将它们与您的项目一起导出,以防某些类被排除在外。

右键单击您的项目并转到属性。单击Java Build Path左侧面板并导航到Order and Export选项卡。您可能需要检查第三方库才能将它们添加到构建路径并将它们导出到 apk。另请注意,库的顺序也很重要,它们在构建 apk 时具有更高的属性。

于 2014-09-05T09:20:58.367 回答
1

我刚变

compileOptions{
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

compileOptions{
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
}

它就像一个魅力......

于 2014-09-05T10:59:16.857 回答