2015-04-15 12 views
5

Ich habe ein Android Studio-Bibliotheksprojekt, das library.aar und library.jar verwendet. Wenn ich es als mylib.aar exportiere und dieses neue AAR in einer anderen App/einem anderen Projekt verwende, kann es die in library.aar und library.jar definierten Klassen nicht finden.Wie exportiert AAR einschließlich seiner Abhängigkeiten?

Meine build.gradle sieht wie folgt aus:

apply plugin: 'com.android.library' 
android { 
    compileSdkVersion 21 
    buildToolsVersion "21.1.2" 
    defaultConfig { 
     minSdkVersion 15 
     targetSdkVersion 21 
     versionCode 1 
     versionName "1.0" 
    } 
} 
dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    compile project(':library_dot_aar') 
    compile project(':library_dot_jar') 
} 

importierte ich die AAR und JAR-Dateien in Android Studio New -> Module -> Import .JAR or .AAR Package mit und fügen Sie sie als Abhängigkeiten in Project Structure -> Module Settings -> Dependencies -> Add Module Dependencies.

Als ich mylib.aar dekomprimiert es war nur 25KB (unter Berücksichtigung library.aar über 300KB war, gehe ich davon aus mylib.aar ‚s Größe im gleichen Bereich liegen würde) und die darin enthaltenen Abhängigkeiten wurden darin nicht enthalten. Wie exportiere ich ein AAR, das alle Abhängigkeiten in sich selbst enthält?

Antwort

2

Sie müssen this answer überprüfen:

Es gibt keinen Mechanismus Bibliothek zu kombinieren ist. Es ist ein bisschen kompliziert als Sie wahrscheinlich steuern möchten, welche Abhängigkeiten zusammengeführt werden (für Instanz möchten Sie wahrscheinlich nicht Support-V4 in dort enthalten). Auch müssen Sie die Ressourcen und Android-Manifest zusammenführen.

Zu diesem Zeitpunkt gibt es keine Möglichkeit, etwas zu leicht hacken, es sei denn, Sie sicher, dass die Ressourcen haben keine Konflikte zwischen den beiden res Ordner (für Instanz sind Sie die strings_a.xml in einer lib und strings_b.xml in haben könnte andere lib). Auf diese Weise können Sie einfach die beiden Res-Ordner durch "verschmelzen" und beide in den gleichen Speicherort kopieren (im Gegensatz zu einer Zusammenführung bei der Android Res-Ebene).

Für das Manifest wäre es komplizierter, aber machbar mit einigen benutzerdefinierten Code.

Die Bereitstellung eines integrierten Mechanismus für diese ist sehr niedrig auf unsere Priorität, so nicht erwarten, dass es jederzeit bald.

+1

Danke. Ich habe eine Arbeit gefunden, indem ich sowohl 'library.aar' als auch' library.jar' in das andere Projekt eingefügt habe, zusammen mit 'mylib.aar'. – alxcyl

+0

Hallo Alxcy, haben Sie irgendeine Methode gefunden, um aar einschließlich Abhängigkeit URL und jar und lib zu machen. Es wird uns sicher helfen – harikrishnan

Verwandte Themen