在路径上找不到类:dexpathlist

18
说实话,我不知道该怎么解决这个问题。我的 Android 项目一直很好用,直到我需要导入 Maven 库为止。从那时起,一切都开始崩溃。
发生了什么:当我启动应用程序时,LogCat 上出现以下错误,并且 Android 告诉我我的应用程序停止工作。我在这里和整个互联网上搜索了这个类似的错误,但是人们所做的一切对我来说都没有起作用。
错误:
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.buscaserra/com.buscaserra.main.ActivitySplash}: java.lang.ClassNotFoundException: Didn't find class "com.buscaserra.main.ActivitySplash" on path: DexPathList[[zip file "/system/framework/com.google.android.maps.jar", zip file "/data/app/com.example.buscaserra-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.buscaserra-2, /vendor/lib, /system/lib]]
清单和包: manifest packages 构建路径: buildpath

尝试禁用Maven性质,使用Android“修复项目”,清理项目,但问题仍然存在。 - VulfCompressor
如果您发布了您的POM,可能会帮助您获得答案。 - Ricardo Gladwell
抱歉,我现在不在家,也无法访问我的项目...但是我的Pom文件看起来像这样:创建一个新的Pom文件,添加上述库的依赖项,就完成了。 - VulfCompressor
这取决于你所说的“库”是什么意思 - 它可以有很多含义。你是指APKLIB吗?还是JAR?或者AAR? - Ricardo Gladwell
这篇帖子提供了一个解决方案,解决了我的问题。https://dev59.com/B2gv5IYBdhLWcg3wD8yY?rq=1 - flameshimmer
显示剩余4条评论
8个回答

6

我也遇到了同样的问题。 解决方法是将android-support-v4.jar文件作为库添加,并确保在“项目属性”->“构建路径”- >“顺序和导出”中选中它。 具体可以参考这里


如何检查?我在Android Studio里找了很久。我根本找不到属性。 - Martin Erlic
这实际上是针对基于 Eclipse 的 IDE 的,但我想你可以转到模块设置,然后查看依赖项。 - Federico

2

当我将项目文件夹从Linux机器移到Mac时,我遇到了同样的问题。

我的解决方法是:

  1. 关闭项目
  2. 删除.iml文件
  3. 使用“使用现有代码创建新项目”导入项目

我正在使用IntelliJ。

祝好。


2
我已经采取以下步骤来解决Android Studio的问题:
  • 打开文件./app/build.gradle
  • 降低compileSdkVersion版本(例如22 -> 21)
  • 点击“与gradle文件同步项目”
  • 将编译版本改回原始版本(例如22)
  • 再次点击“与gradle文件同步项目”
重新编译即可。

3
我不明白更改 SDK 版本如何解决这个 dex 问题。 - IgorGanapolsky

1

我在这个愚蠢的问题上花费了太多时间,但最终解决了:

当创建一个新项目时,包名会导致这个愚蠢的dex问题出现,无论使用什么部署组装设置,在运行时都不能找到主要活动。Android Studio不喜欢我常用的一些包名,我完全被搞糊涂了...我认为这是一个相当大的bug哈哈

给定以下新项目参数:

名称:NotificationApp, 包名:com.stores.business.notificationapp, 保存位置:/home/me/AndroidStudioProjects/NotificationApp

我将得到以下错误: java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.stores.business.notificationapp/com.stores.business.notificationapp.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.stores.business.notificationapp.MainActivity" on path: DexPathList[[zip file "/data/app/com.stores.business.notificationapp-2/base.apk"],nativeLibraryDirectories=[/data/app/com.cvs.stores.myapplication-2/lib/arm64, /vendor/lib64, /system/lib64]] at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2327)

我通过将包名更改为com.notificationapp来解决此问题,然后选择文件->无效缓存/重启..希望这能帮助其他人哈哈。

0

确保您在主项目中使用的任何兼容性库jar(例如android-support-v4.jar)与主项目引用的任何项目中使用的版本相同。

我曾经遇到过同样的问题,解决方法是将android-support-v4.jar从另一个库项目(我的主项目正在引用)复制并粘贴到我的主项目的/libs文件夹中。


0

您的构建路径中是否有任何必需的项目?从您的屏幕截图无法确定,但请检查您的“项目”选项卡。您可能不小心将项目库添加为必需项目。从“项目”选项卡中删除该项目,然后选择项目 -> 属性。在 Android 中单击,然后在此处将项目添加为库...


0

我遇到了同样的问题。自上次编译以来,除了Android Studio和Gradle更新之外,没有做任何更改。

我查看了“构建”>“编辑构建类型”下的构建选项,并注意到我的项目与那些能够正常运行的项目之间唯一不同的选项是“启用混淆”。

我将其设置为false,现在一切都正常了。


-1
我应该通过看到“dex错误”就能理解问题。但是修复这个问题花了半天时间。 我按照Android开发者页面的指示https://developer.android.com/studio/build/multidex.html来解决这个问题。
首先将以下内容添加到我的gradle.build文件中:
defaultConfig {
...
minSdkVersion 14
targetSdkVersion 21
...

// Enabling multidex support.
multiDexEnabled true
}

dependencies {
  compile 'com.android.support:multidex:1.0.0'
}

然后我按照MultiDexApplication类文档上的说明,扩展了我的Application类(或在AndroidManifest.xml中声明应用程序类或覆盖attachBaseContext()函数)。这解决了我的问题。


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