将字节码转换为dex时出错:原因:java.lang.RuntimeException:exceptionparsing类 – Android Studio 2.0 beta 6

我使用gradle更新到Android studio 2.0 Beta 6的最新版本:

dependencies { classpath 'com.android.tools.build:gradle:2.0.0-beta6' } 

该应用程序在模拟器和设备上工作得很好,我testing了每一件事情,它工作正常。

我只有在尝试生成已签名的APK时才收到很多错误,

我在依赖关系中遇到了一些错误,当我排除vectordrawable,vectoranimationdrawable和Support-v4库

现在我没有任何依赖关系的错误。

现在我的app模块gradle.build看起来像这样:

 apply plugin: 'com.android.application' android { configurations { //all*.exclude group: 'com.android.support', module: 'support-v4' all*.exclude module: 'animated-vector-drawable' all*.exclude module: 'support-vector-drawable' //all*.exclude module: 'support-v4' } repositories { maven { url "https://jitpack.io" } } compileSdkVersion 23 buildToolsVersion '23.0.2' defaultConfig { applicationId "com.test.test" minSdkVersion 11 targetSdkVersion 23 versionCode 1 versionName "1" // multiDexEnabled true vectorDrawables.useSupportLibrary = true } buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } productFlavors { } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile('com.github.afollestad.material-dialogs:commons:0.8.5.5@aar') { transitive = true exclude module: 'support-v4' exclude module: 'appcompat-v7' exclude module: 'recyclerview-v7' } compile('com.google.android.gms:play-services-ads:8.4.0') { exclude module: 'support-v4' } compile('com.google.android.gms:play-services-analytics:8.4.0') { exclude module: 'support-v4' } compile('com.android.support:appcompat-v7:23.2.0') { exclude module: 'support-v4' exclude module: 'animated-vector-drawable' exclude module: 'support-vector-drawable' } compile('com.android.support:support-v4:23.2.0') { exclude module: 'animated-vector-drawable' exclude module: 'support-vector-drawable' } compile('com.android.support:palette-v7:23.2.0') { exclude module: 'support-v4' } compile('com.android.support:cardview-v7:23.2.0') { exclude module: 'support-v4' } compile('com.android.support:recyclerview-v7:23.2.0') { exclude module: 'support-v4' } compile('com.android.support:design:23.2.0') { exclude module: 'support-v4' } compile('com.nineoldandroids:library:2.4.0') { exclude module: 'support-v4' } compile('com.baoyz.swipemenulistview:library:1.2.1') { exclude module: 'support-v4' exclude module: 'appcompat-v7' exclude module: 'recyclerview-v7' } compile('com.squareup.picasso:picasso:2.5.2') { exclude module: 'support-v4' } compile('com.nononsenseapps:filepicker:2.5.0') { exclude module: 'support-v4' exclude module: 'appcompat-v7' exclude module: 'recyclerview-v7' } compile 'com.google.code.gson:gson:2.6.1' } 

只有当我发布时才会显示错误:

这是我打开multiDex时的错误:

 Error:Execution failed for task ':app:transformClassesWithMultidexlistForRelease'. > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1 

当我closures它时,这是错误的:

 :app:transformClassesWithDexForRelease Error:Error converting bytecode to dex: Cause: java.lang.RuntimeException: Exception parsing classes Error:Execution failed for task ':app:transformClassesWithDexForRelease'. > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1 

我试图改变buildToolsVersion '23.0.2'到每一个可能的版本,没有任何改变。

当我把版本22.0.1我得到这个错误:

 Error:Error converting bytecode to dex: Cause: com.android.dx.cf.iface.ParseException: name already added: string{"a"} Error:Execution failed for task ':app:transformClassesWithDexForRelease'. > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1 

我尝试了所有可能的支持库版本和相同的结果。

我尝试了Java 1.6和1.7,没有任何改变!

什么可以是其他可能的解决scheme吗?

Solutions Collecting From Web of "将字节码转换为dex时出错:原因:java.lang.RuntimeException:exceptionparsing类 – Android Studio 2.0 beta 6"

我也遇到了同样的错误,我正在通过许多现有的答案重复依赖或multidex等,但没有工作。 (Android Studio 2.0 Beta 6,构build工具23.0.2,没有multidex)

事实certificate,我曾经使用过一个与Manifest中描述的软件包名称不匹配的软件包名称。

在其他的ParseException行中,我发现,我有不同的模块中的文件,相似的软件包名称/path,可能冲突dexer。

例:

模块A: com.example.xyz.ticketing.modulea.Interface.java

模块B: com.example.Xyz.ticketing.moduleb.Enumerations.java

模块C:依赖于A和B.

将“Xyz”固定为小写字母之后,dexer再次变好。

如何找出:

当我通过Gradle控制台的ParseExceptions的输出看起来像这样:

AGPBI:{“kind”:“error”,“text”:“将字节码转换为dex时出错:\ n原因:java.lang.RuntimeException:exceptionparsing类”

我滚动接近exception的结尾。 在那个长长的例外行中,有一部分确实提到了原因:

导致:com.android.dx.cf.iface.ParseException:类名(在/ dummycompany / mFGM / hata / hwp / BuildConfig)不匹配path(在/ dummycompany / mfgm / hata / hwp / BuildConfig.class)

通过这种方式,我发现了在哪里search不匹配的软件包名称/path

我有同样的问题,我只是做Build > Clean Project等待清理结束,然后Build > Rebuild Project ,错误消失了。 而已。

我的解决scheme是修改生成Gradle文件。 我发现,问题是GC开销(内存不足)。

所以我添加一些代码到我的configuration

 android { dexOptions { incremental = true; preDexLibraries = false javaMaxHeapSize "2g" } } 

还有一些proguard问题。 你也必须将minifyEnabled设置为false。

我在一个helper类中有一个错误的包名,所以我有错误。所以检查所有的类,并确保你有正确的包名称。

我的解决scheme是不同的,我在proguard-rules.pro添加了这些行

 -optimizationpasses 5 -overloadaggressively -repackageclasses '' -allowaccessmodification 

确保从SDKpipe理器更新所有内容。

从我的proguard-rules.pro删除-overloadaggressively修复这个给我。

或者,添加-useuniqueclassmembernames也解决了它。

如果您的targetSdkVersion是25或更高版本,并且您使用JDK 8,则必须在build.gradle文件中添加以下内容:

 android { compileSdkVersion 26 buildToolsVersion "26.0.0" defaultConfig { ... jackOptions { enabled true } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } 

更多信息: https : //stackoverflow.com/a/372​​94741

在使用Android工作室模板进行login活动时遇到此问题。
我select了“活动”包来把我的活动。
AndroidManifest.xml中的模板,而不是.activity.LoginActivity使用.LoginActivity从而导致错误。

如果你面对这个错误,那么你的包里的清单肯定不同于你在课堂上设置的其他包。 小心。

我今天遇到了同样的问题,问题是在我定义的Constants.java类(错误地)

 public static final class Checkout { ....... } 

 public static final class CHECKOUT { ...... } 

在我的情况下,有一个我没做过的课。 所以我必须删除类或使用类。

我面临同样的错误。 似乎是因为把一个包重命名为小写,而一个类有前面的案例措辞。

我试过./gradlew clean build ,无效的工作室caching,重新启动机器。 但是,解决这个问题的办法就是立即逃跑

你的gradle.build文件将包含

 compile files('libs/httpclient-4.2.1.jar') compile 'org.apache.httpcomponents:httpclient:4.5' compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5.1' 

通过从文件中删除这一行。

 compile files('libs/httpclient-4.2.1.jar') 

它会正常工作。