2016-07-22 13 views
3

Edit: Hinweis: Dieses Problem ist in AS3 behoben, die jetzt JAR-Abhängigkeiten vorübergehend macht. Yay.Korrekter Weg, um eine transitive .jar-Abhängigkeit in einem Java-Bibliotheksmodul zu behandeln


Ich habe ein Android-Studio (2.2) Projekt mit Gradle 1.1, die einen Haupt-App und mehrere Bibliotheksmodule (beide Android und reine Java-Bibliotheken) hat.

Einige der Java-Bibliothek Module hängen von .jar-Dateien:

  • App
    • Libs (Verzeichnis, alle in App Abhängigkeiten aufgeführten Dateien)
      • f1.jar,
      • f2.jar ...
    • Modul 1 (Java-Bibliothek-Projekt/Modul)
      • Libs (Verzeichnis, alle in Modul aufgeführten Dateien 1 Abhängigkeiten)
        • L1f1.jar,
        • L1f2.jar ...

Wenn ich die App im Emulator ausgeführt wird, kann es nicht finden Klassen in L1Fn.jar.

Ich habe an anderer Stelle gelesen, dass ich diese libs in den wichtigsten App-Abhängigkeiten mit relativen Pfaden verweisen kann.

Gibt es einen besseren Weg? Kann Gradle erkennen, dass diese Dateien zur Laufzeit im App-Projekt benötigt werden?

Wie pro Antrag

Edit:

Haupt build.gradle:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "24.0.1" 

    defaultConfig { 
    applicationId "my.app.id" 
    minSdkVersion 14 
    targetSdkVersion 19 
    multiDexEnabled true 

    jackOptions 
     { 
      enabled true 
     } 
    } 

    dexOptions 
    { 
     javaMaxHeapSize "4g" 
    } 

    buildTypes { 
     release 
     { 
      minifyEnabled true 
      proguardFiles 'proguard-project.txt' 
     } 
    } 
    compileOptions { 
    sourceCompatibility JavaVersion.VERSION_1_8 
    targetCompatibility JavaVersion.VERSION_1_8 
    } 
} 

dependencies { 
    compile project(':theLibraryProject') 
} 

Bibliothek build.gradle:

apply plugin: 'java' 

dependencies { 
    compile files('libs/jar-file-1.jar') 
    compile files('libs/jar-file-2.jar') 
} 
+0

zeigt uns die gradle Datei –

+0

@EugenMartynov Fertig. – RabidMutant

+0

Ihre beiden Gradle-Dateien sind von Anfang an gut. Ich kann nicht sagen, was falsch ist. Hast du ein Beispielprojekt, um ein Spiel zu reproduzieren? –

Antwort

0

u verwenden sollten:

apply plugin: 'android-library' 

in Ihrer Bibliothek Build-Datei

+0

Leider habe ich in der ursprünglichen Frage einen Fehler gemacht; Das zweite Projekt ist keine Android-Bibliothek, es ist nur eine Java-Bibliothek, die von anderen JAR-Dateien abhängt, so dass "Android-Bibliothek" hinzufügen keine Option ist. – RabidMutant