2017-03-25 4 views
0

Ich versuche, eine Android-Anwendung zu erstellen, die von einem Java-Bibliotheksmodul auf Java-Code abhängig ist, aber wenn ich versuche, aus diesem Java-Bibliothek alle Objekte zu verwenden, habe ich immer die folgendeApp: transformClassesWithDexForDebug mit mehreren Modulen

Ausführung fehlgeschlagen für Task ': app: transformClassesWithDexForDebug'.

com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Prozess 'command' C: \ Programme \ ‚Java \ jdk1.8.0_121 \ bin \ java.exe‘ beendet mit nicht-Null-Ausgang Wert 1

ich habe auf der folgenden Execution failed for task ':app:transformClassesWithDexForDebug' while implementing Google sign in for Android sah, und ich habe so ziemlich jeden Vorschlag versucht, aber es immer noch gewonnen nicht bauen. Meine Java-Bibliothek funktioniert die json Bibliothek verwenden, die Android-Anwendungen, und ich ein paar Warnungen darüber erhalten, aber es sagt, es wird nur

mein build.gradle

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 25 
    buildToolsVersion "25.0.2" 

    defaultConfig { 
     applicationId "pwils33.familymap" 
     minSdkVersion 23 
     targetSdkVersion 25 
     versionCode 1 
     versionName "1.0" 
     multiDexEnabled true 
    } 
    buildTypes { 
     debug { 
      minifyEnabled true 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
     release { 
      minifyEnabled true 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    dexOptions { 
     javaMaxHeapSize "4g" 
     preDexLibraries false 
     incremental true 
    } 
} 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    testCompile 'junit:junit:4.12' 
    compile project(':shared') 
    compile 'com.android.support:appcompat-v7:25.3.0' 
    compile 'com.android.support:support-v4:25.3.0' 
    compile 'com.android.support:multidex:1.0.1' 
} 

hier außer Acht gelassen werden Ich bin mit der Modul für eine andere Java-Anwendung, die ich gebaut habe, so kann ich es nicht in eine Android-Bibliothek konvertieren. Jede mögliche Hilfe würde

EDIT geschätzt werden Ich habe versucht, meine Anwendung macht eine Multi dex Anwendung als auch, dass funktioniert auch nicht, hier ist mein Manifest für die Anwendung

<?xml version="1.0" encoding="utf-8"?> 
<manifest package="pwils33.familymap" 
     xmlns:android="http://schemas.android.com/apk/res/android"> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme" 
     android:name="android.support.multidex.MultiDexApplication"> 
     <activity android:name=".activities.MainActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN"/> 
       <category android:name="android.intent.category.LAUNCHER"/> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

Antwort

0

Code unten versuchen zu beheben Ihre Fragen:

android { 
    defaultConfig { 
     minSdkVersion 15 
     targetSdkVersion 25 
     multiDexEnabled true 
    } 
} 

dependencies { 
    compile 'com.android.support:multidex:1.0.1' 
} 
0

Fügen Bibliothek in Ihrer App-Modul build.gradle Datei:

compile 'com.android.support:multidex:1.0.1' 

Aktivieren Sie dann durch die Zugabe in defaultConfig Abschnitt multidexing:

multiDexEnabled true 

Wenn Sie nicht überschreiben Application, bearbeiten <Application> Tag Manifest, und fügen:

<application 
     android:name="android.support.multidex.MultiDexApplication"> 

Wenn Sie Application Klasse überschreiben tun , erweitern Sie es von MultiDexApplication Klasse (von oben genannten Bibliothek:

public class AndroidApplication extends MultiDexApplication { ... } 

Wenn Sie Application Klasse tun außer Kraft setzen und es tatsächlich andere Klasse erweitern (zum Beispiel wegen der ORM-Bibliothek, die oft erfordert von seiner Klasse zu erweitern), installiert multidex durch von attachBaseContext Aufruf:

MultiDex.install(this); 

Mehr Details sind in Google's documentation verfügbar.

+0

Ich habe versucht zu arbeiten, dass die auch nicht funktioniert, ich werde den Beitrag aktualisieren – pwils33

+0

Wie dies für ein Projekt gilt, die mehrere Module hat? – toobsco42

0

Ich habe es endlich herausgefunden. Es stellt sich heraus, dass Multi-Dex-Bibliotheken 1.8 nicht unterstützen, da ich Java 8 auf meinem Computer habe, als es den kompilierten Code von meinem Java-Modul gefunden hat, brach es. Ich habe die folgenden Zeilen zu meinem Build hinzugefügt.gradle meinem Java-Modul schließlich bekommen es

sourceCompatibility = 1.7 
targetCompatibility = 1.7 

dependencies { 
... 
} 
Verwandte Themen