簡體   English   中英

即使使用multiDexEnabled,Android Studio org.gradle.process.internal.ExecException

[英]Android Studio org.gradle.process.internal.ExecException even using multiDexEnabled

我正在嘗試在Android上移植Apache Flink 這是我的build.gradle文件:

apply plugin: 'com.android.application'
android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "hk.ust.symlab.mobiflink"
        minSdkVersion 23
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    packagingOptions {
        exclude 'META-INF/maven/org.apache.flink/force-shading/pom.xml'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/maven/org.apache.flink/force-shading/pom.properties'
        exclude 'META-INF/ASL2.0'
        exclude 'META-INF/maven/com.google.guava/guava/pom.xml'
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/maven/com.google.guava/guava/pom.properties'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE.txt'
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:3.8.1'
    compile 'com.android.support:appcompat-v7:23.2.1'
    compile 'com.android.support:design:23.2.1'
    compile 'com.android.support:multidex:1.0.1'
    compile 'org.apache.flink:flink-java:1.0.0-hadoop1'
    compile 'org.apache.flink:flink-clients:0.10.2-hadoop1'
}

奇怪的是,如果我不包括compile 'org.apache.flink:flink-clients:0.10.2-hadoop1'則項目將編譯並運行而沒有錯誤,否則我將出現此錯誤:

com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/usr/lib/jvm/java-7-openjdk-amd64/bin/java'' finished with non-zero exit value 1

我已經讀了很多關於這個問題(這樣的問題一個),但你可以看到我已經包含了multiDexEnabled選項(這是必要的時候已經包含我compile 'org.apache.flink:flink-java:1.0.0-hadoop1'

嘗試將此添加到android部分的build.gradle中

    dexOptions {
            incremental = true;
            preDexLibraries = false
            javaMaxHeapSize "4g" // 2g should be also OK
        }

compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }

然后添加如下的應用程序類

public class MyApplication extends MultiDexApplication {

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

然后在清單中提及您的應用程序類

<application
        android:name=".MyApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:largeHeap="true"
        android:supportsRtl="true"
        android:theme="@style/AppTheme.NoActionBar">
 </application>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM