Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java dex文件不包含MainActivity类_Java_Android_Android Studio_Gradle_Dex - Fatal编程技术网

Java dex文件不包含MainActivity类

Java dex文件不包含MainActivity类,java,android,android-studio,gradle,dex,Java,Android,Android Studio,Gradle,Dex,运行我的应用程序时,我遇到以下错误: java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.name.app/com.name.app.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.name.app.MainActivity" on path: DexPathList[[zip file

运行我的应用程序时,我遇到以下错误:

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.name.app/com.name.app.MainActivity}: 
java.lang.ClassNotFoundException: Didn't find class "com.name.app.MainActivity" on path: 
    DexPathList[[zip file "/data/app/com.name.app-2/base.apk"],
        nativeLibraryDirectories=[/vendor/lib, /system/lib]]
我已经使用Android Studio apk analyzer(构建>分析apk)来分析我的apk(app/Build/outputs/apk/debug/app debug.apk)和
类的结构

java/
    lang/*
    util/*
    io/*
com/google/devtools/build/...
我注意到我自己的课程,以及主要的活动,都不见了。 因为就我所理解的dex文件而言(从这个问题来看),我自己的类也应该存在。 由于它们不在那里,我明白了为什么会出现找不到我的类的错误

我在自己的设备上(三星、棒棒糖5.0.2、API 21)和虚拟设备上(谷歌像素、Oreo 8.0.0、API 26)都出现了这个错误

我尝试过的

我在谷歌上搜索了很多建议,但没有一个对我有用。 这些建议是:

  • 禁用即时运行。文件>设置>生成、执行、部署>即时运行>取消选中即时运行

  • 清理项目。构建>清理。然后重建项目,构建>重建

  • 使缓存无效/重新启动

  • 从设备卸载应用程序,然后重试

  • 清单
    中使用不同的路径命名。将
    activity
    标记中的
    android:name=“.MainActivity”
    更改为
    android:name=“com.name.app.MainActivity”

  • 禁用预索引,如回答中所示

将以下内容添加到
build.gradle

dexOptions {
    preDexLibraries false
}
  • 启用多索引,然后是链接。首先在
    build.gradle
    中启用多索引,然后将
    MultiDexApplication
    添加到我的清单中。我的
    main活动
    扩展了
    AppCompatActivity
    (因此它不扩展
    应用程序
启用multidex会产生类似的错误:

java.lang.RuntimeException: Unable to instantiate application android.support.multidex.MultiDexApplication: 
java.lang.ClassNotFoundException: Didn't find class "android.support.multidex.MultiDexApplication" on path: 
    DexPathList[...]
下面是启用multidex的新增功能

格雷德尔先生

舱单(仅相关部分)

更新

我正在使用Android Studio 3.1.3。我曾尝试使用另一台笔记本电脑运行我的应用程序(通过版本控制,使用Android Studio 3.1.3),但没有出现错误。由于文件完全相同,我怀疑我的Android Studio设置有问题


删除Android Studio及其所有设置,然后从下载并安装Android Studio并没有解决问题。

我的文件夹的结构是

.gradle/
.idea/
app/
    build/
    src/main
        gen/
        java/
        res/
build/
gradle/
gen
文件夹不应在此。 此文件夹包含生成的文件,如
R.java
。 这些文件也(尽管正确)存在于
app/build/generated/source/*
中。 只需删除
gen
文件夹并清理项目即可解决问题

我不知道那
gen
文件夹是如何在那里结束的,因为我从磁盘中删除了该项目,并多次克隆了git存储库(没有这个文件夹)。
一旦我发现它是如何出现的,我将更新此答案。

您的mainactivity类是否为kotlin类?希望您的com.name.app.mainactivity已在清单中定义。xml@NiravBhavsar不,我的主要活动是Java类。我还有其他Kotlin类。@Sreehari是的,当然是。@cricket_007是在模拟器上的。只要在物理设备上运行它,这条路径就更有意义了。我将编辑这个问题以避免混淆。这不是一个全新的项目,而是我正在改进的前一个项目(大约一年后,当它第一次“完成”时),并慢慢地将Java转换为Kotlin。我们最近将Gradle升级到了4.7,所以这可能与它有关(尽管我记得它可以很好地工作)。
<application
        android:name="android.support.multidex.MultiDexApplication" >
        ...
</application>
dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    testImplementation 'junit:junit:4.12'
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support:design:26.1.0'
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.squareup.retrofit2:retrofit:2.4.0'
    implementation 'com.squareup.retrofit2:converter-simplexml:2.3.0'
    implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"

    testImplementation 'org.junit.platform:junit-platform-engine:1.2.0'
    testImplementation 'org.jetbrains.spek:spek-api:1.1.5'
    testImplementation 'org.jetbrains.spek:spek-junit-platform-engine:1.1.5'
}
.gradle/
.idea/
app/
    build/
    src/main
        gen/
        java/
        res/
build/
gradle/