Android Studio 和 Gradle

标签 android android-studio gradle

我尝试在 Android Studio 中导入 Xabber (GitHub),我执行了 git init 等。 现在我发现我可以启动该问题的应用程序 Gradle ,我到处都找过了,但找不到任何可以工作的东西..

问题是:

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

堆栈:

Information:Gradle tasks [:app:assembleBetaDebug]
:app:preBuild UP-TO-DATE
:app:preBetaDebugBuild UP-TO-DATE
:app:checkBetaDebugManifest
:app:preBetaReleaseBuild UP-TO-DATE
:app:preDevDebugBuild UP-TO-DATE
:app:preDevReleaseBuild UP-TO-DATE
:app:otr4j:compileJava UP-TO-DATE
:app:otr4j:processResources UP-TO-DATE
:app:otr4j:classes UP-TO-DATE
:app:otr4j:jar UP-TO-DATE
:app:prepareComAndroidSupportAppcompatV72220Library UP-TO-DATE
:app:prepareComAndroidSupportDesign2220Library UP-TO-DATE
:app:prepareComAndroidSupportMultidex101Library UP-TO-DATE
:app:prepareComAndroidSupportRecyclerviewV72102Library UP-TO-DATE
:app:prepareComAndroidSupportSupportV132220Library UP-TO-DATE
:app:prepareComAndroidSupportSupportV42220Library UP-TO-DATE
:app:prepareComGithubKsoichiroAndroidObservablescrollview150Library UP-TO-DATE
:app:prepareComMelnykovFloatingactionbutton120Library UP-TO-DATE
:app:prepareDeHdodenhofCircleimageview122Library UP-TO-DATE
:app:prepareBetaDebugDependencies
:app:compileBetaDebugAidl UP-TO-DATE
:app:compileBetaDebugRenderscript UP-TO-DATE
:app:generateBetaDebugBuildConfig UP-TO-DATE
:app:generateBetaDebugAssets UP-TO-DATE
:app:mergeBetaDebugAssets UP-TO-DATE
:app:generateBetaDebugResValues UP-TO-DATE
:app:generateBetaDebugResources UP-TO-DATE
:app:mergeBetaDebugResources UP-TO-DATE
:app:processBetaDebugManifest UP-TO-DATE
:app:processBetaDebugResources UP-TO-DATE
:app:generateBetaDebugSources UP-TO-DATE
:app:processBetaDebugJavaRes UP-TO-DATE
:app:compileBetaDebugJava UP-TO-DATE
:app:compileBetaDebugNdk UP-TO-DATE
:app:compileBetaDebugSources UP-TO-DATE
:app:collectBetaDebugMultiDexComponents UP-TO-DATE
:app:packageAllBetaDebugClassesForMultiDex UP-TO-DATE
:app:shrinkBetaDebugMultiDexComponents UP-TO-DATE
:app:createBetaDebugMainDexClassList UP-TO-DATE
:app:dexBetaDebug
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000)
    at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472)
    at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
    at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
    at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
    at com.android.dx.command.dexer.Main.processClass(Main.java:704)
    at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)
    at com.android.dx.command.dexer.Main.access$300(Main.java:83)
    at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)
    at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)
    at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)
    at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
    at com.android.dx.command.dexer.Main.processOne(Main.java:632)
    at com.android.dx.command.dexer.Main.processAllFiles(Main.java:490)
    at com.android.dx.command.dexer.Main.runMultiDex(Main.java:334)
    at com.android.dx.command.dexer.Main.run(Main.java:244)
    at com.android.dx.command.dexer.Main.main(Main.java:215)
    at com.android.dx.command.Main.main(Main.java:106)
...while parsing net/java/otr4j/OtrEngineHost.class
warning: Ignoring InnerClasses attribute for an anonymous inner class
(org.xbill.DNS.UDPClient$1) that doesn't come with an
associated EnclosingMethod attribute. This class was probably produced by a
compiler that did not target the modern .class file format. The recommended
solution is to recompile the class from source, using an up-to-date compiler
and without specifying any "-target" type options. The consequence of ignoring
this warning is that reflective operations on this class will incorrectly
indicate that it is *not* an inner class.
warning: Ignoring InnerClasses attribute for an anonymous inner class
(jnamed$3) that doesn't come with an
associated EnclosingMethod attribute. This class was probably produced by a
compiler that did not target the modern .class file format. The recommended
solution is to recompile the class from source, using an up-to-date compiler
and without specifying any "-target" type options. The consequence of ignoring
this warning is that reflective operations on this class will incorrectly
indicate that it is *not* an inner class.
warning: Ignoring InnerClasses attribute for an anonymous inner class
(jnamed$1) that doesn't come with an
associated EnclosingMethod attribute. This class was probably produced by a
compiler that did not target the modern .class file format. The recommended
solution is to recompile the class from source, using an up-to-date compiler
and without specifying any "-target" type options. The consequence of ignoring
this warning is that reflective operations on this class will incorrectly
indicate that it is *not* an inner class.
warning: Ignoring InnerClasses attribute for an anonymous inner class
(jnamed$2) that doesn't come with an
associated EnclosingMethod attribute. This class was probably produced by a
compiler that did not target the modern .class file format. The recommended
solution is to recompile the class from source, using an up-to-date compiler
and without specifying any "-target" type options. The consequence of ignoring
this warning is that reflective operations on this class will incorrectly
indicate that it is *not* an inner class.
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000)
    at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472)
    at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
    at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
    at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
    at com.android.dx.command.dexer.Main.processClass(Main.java:704)
    at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)
    at com.android.dx.command.dexer.Main.access$300(Main.java:83)
    at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)
    at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)
    at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)
    at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
    at com.android.dx.command.dexer.Main.processOne(Main.java:632)
    at com.android.dx.command.dexer.Main.processAllFiles(Main.java:505)
    at com.android.dx.command.dexer.Main.runMultiDex(Main.java:334)
    at com.android.dx.command.dexer.Main.run(Main.java:244)
    at com.android.dx.command.dexer.Main.main(Main.java:215)
    at com.android.dx.command.Main.main(Main.java:106)
...while parsing net/java/otr4j/OtrException.class
2 errors; aborting
Error:Execution failed for task ':app:dexBetaDebug'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
Information:BUILD FAILED
Information:Total time: 18.654 secs
Information:1 error
Information:0 warnings
Information:See complete output in console

应用程序 Gradle 文件:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 22
        versionCode 193
        versionName '1.0.21'
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }

    lintOptions {
        // problems with generated "applicationId" string resource
        disable 'MissingTranslation'
    }

    productFlavors {

        dev {
            applicationId "com.xabber.androiddev"
            resValue 'string', 'application_package', applicationId
        }

        beta {
            applicationId "com.xabber.android.beta"
            resValue 'string', 'application_package', applicationId
        }

    }
}

repositories {
    mavenCentral()
}

dependencies {
    compile 'com.android.support:design:22.2.0'
    compile 'com.android.support:appcompat-v7:22.2.0'
    compile 'com.android.support:support-v13:22.2.0'
    compile 'com.github.ksoichiro:android-observablescrollview:1.5.0'
    compile 'de.hdodenhof:circleimageview:1.2.2'
    compile 'com.melnykov:floatingactionbutton:1.2.0'
    compile 'dnsjava:dnsjava:2.1.7'
    compile 'com.github.bumptech.glide:glide:3.6.0'
    compile project('otr4j')
}

otr4j Gradle 文件:

repositories {
    mavenCentral()
}
apply plugin: 'java-library-distribution'

dependencies {
    compile 'org.bouncycastle:bcprov-jdk15on:1.49'
    testCompile 'junit:junit:4.11'
    testCompile 'org.mockito:mockito-all:1.9.5'
    testCompile 'org.apache.commons:commons-lang3:3.3.2'
}

Xabber Gradle 文件:

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

谢谢

最佳答案

所以我在这个http://www.alonsoruibal.com/my-gradle-tips-and-tricks/找到了解决方案.

诀窍在于您需要在 Java 库模块的 build.gradle 文件中包含以下内容。

apply plugin: 'java'
sourceCompatibility = 1.6
targetCompatibility = 1.6

Wrong Java Compiler When Including a Java Module as Dependency in Android Studio

关于Android Studio 和 Gradle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30999337/

相关文章:

gradle - 使用 Kotlin 实现插件时如何为 Gradle 扩展任务?

android - Cardview 里面有分隔线

android - Google 的 Android 应用颜色工具

android - 同一 Activity 上的两个抽屉导航

Android Studio 卡在启动模拟器

java - Android Studio : How to resize an image before uploading to server?

android - gradle 可以处理无限的子项目深度吗?

java - 无法解析符号 'Cucumber'

java - 带 EditText 和 InputType 电子邮件的 AlertDialog - Android

android - 如果用户在 EditText 中仅输入空格,则显示错误 - Android