2015-04-15 15 views
5

Ho un progetto di libreria Android Studio che utilizza library.aar e library.jar. Quando esporto come mylib.aar e utilizzo questo nuovo AAR in un'altra app/progetto, non è possibile trovare le classi definite nello library.aar e library.jar.Come esportare AAR comprese le sue dipendenze?

miei build.gradle si presenta così:

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') 
} 

ho importato il file JAR AAR e in Android Studio utilizzando New -> Module -> Import .JAR or .AAR Package e aggiungerli come dipendenze in Project Structure -> Module Settings -> Dependencies -> Add Module Dependencies.

Quando ho decompressi mylib.aar era solo 25KB (considerando library.aar era finita 300KB, presumo mylib.aar 's dimensioni sarebbe nella stessa gamma) e le dipendenze inclusi non sono stati inclusi in esso. Come esportare un AAR che include tutte le sue dipendenze al suo interno?

risposta

2

È necessario verificare this answer:

Non v'è alcun meccanismo per combinare biblioteca. È un po 'complicato come che probabilmente vuoi controllare quali dipendenze vengono unite (per l'istanza di probabilmente non vuoi includere il supporto-v4). Anche avresti bisogno di unire le risorse e manifest di Android.

In questo momento non c'è modo di incidere facilmente qualcosa, a meno che non sono sicuri le risorse non hanno alcun conflitto tra le cartelle due res (per esempio si potrebbe avere in un unico strings_a.xml lib e strings_b.xml in la altra lib). In questo modo puoi semplicemente "unire" le due cartelle di res da copiandole entrambe nella stessa posizione (invece di fare un'unione allo del livello di res android).

Per il Manifesto sarebbe più complicato, ma fattibile con qualche codice personalizzato .

Fornire un meccanismo integrato per questo è molto basso sulla nostra priorità, quindi non lo aspettate presto.

+1

Grazie. Ho trovato un modo per aggirare includendo sia 'library.aar' che' library.jar' nell'altro progetto, insieme a 'mylib.aar'. – alxcyl

+0

Ciao alxcy, hai trovato qualche metodo per fare aAR includendo url di dipendenza e jar e lib. Ci aiuterà sicuramente – harikrishnan

Problemi correlati