web-dev-qa-db-ja.com

Android Gradleを使用(Javaがゼロ以外の終了値2で終了)

これは私の.gradleファイルです:

apply plugin: 'com.Android.application'

Android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "com.test.test"
        minSdkVersion 15
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    }

    packagingOptions {
        exclude 'META-INF/license.txt'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/NOTICE'
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.Android.support:appcompat-v7:21.0.3'

    compile 'com.mcxiaoke.volley:library:1.0.15'
    compile 'org.glassfish.jersey.media:jersey-media-json-jackson:2.17'
}

Androidアプリを実行しようとすると、次のエラーが発生します。

エラー:タスク ':app:dexDebug'の実行に失敗しました。

com.Android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:プロセス 'command'/usr/lib/jvm/Java-8-Oracle/bin/Java ''がゼロ以外の終了で終了しました値2

Gradleファイルにjacksonライブラリを追加すると、このエラーが発生します。しばらくの間グーグル検索を行った結果、jacksonライブラリはAndroidアプリと互換性があり、他のライブラリよりもgsonの方が高速です。

どうすれば解決できますか?私はAndroid初心者です。

7
Hammerin87

Java JDK change jvm v8 for jdk7を変更する必要があると思います。このリンクはあなたに役立ちます: Java 8 for Android開発?

その他の考えられる問題は、依存関係エラーです。ビルドする前にGradleをクリーンアップしてください。そして、これのためにあなたのジャクソンライブラリを変更してください:

compile 'com.fasterxml.jackson.core:jackson-databind:2.2.+'
compile 'com.fasterxml.jackson.core:jackson-core:2.2.+'
compile 'com.fasterxml.jackson.core:jackson-annotations:2.2.+'
3
encastellano

不快なことに、この問題にはいくつかの理由があります。私の場合、最大行数を超えたことが原因でした。 Android Studioが表示するメッセージは何の意味もないのでとても煩わしいですが、どういうわけか私は以下のように解決策を見つけました:

https://developer.Android.com/tools/building/multidex.html

MultiDexApplicationを拡張するクラスを作成し、次のメソッドをオーバーライドする必要があります。

    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
    }

上記のリンクで説明されているように、AndroidManifestファイルのタグ内に「名前」を追加することを忘れないでください。

3
Merve Gencer

JDKパスを修正すると問題が解決します。

プロジェクトを右クリックして、[プロジェクト]> [モジュール設定を開く]> [SDKの場所]> [JDKの下]の場所にJDKフォルダーへのパスを指定します。

1

必要なライブラリをmy_project/app/libsにコピーし、build.gradleに依存関係を追加しました。したがって、私の場合、my_project/app/libsにコピーしたライブラリを削除しました。 Gradleはすべての依存関係を維持するので、ライブラリを/ libsに置く必要はありません。これで問題が解決しました。

1

非互換性を引き起こす依存関係があるかもしれません

例えば:

1
David Hackro