Ich konnte einen Bibliotheksquellcode für eine kompilierte .jarDatei mithilfe des Ansatzes dieser Lösung erstellen:
https://stackoverflow.com/a/19037807/1002054
Hier ist die Aufschlüsselung dessen, was ich getan habe:
1. Checkout-Bibliotheks-Repository
Im Mai war es eine Volley-Bibliothek
2. Importieren Sie die Bibliothek in Android Studio.
Ich habe Android Studio 0.3.7 verwendet. Während dieses Schritts sind einige Probleme aufgetreten, nämlich, dass ich einen gradleOrdner aus einem neuen Android-Projekt kopieren musste, bevor ich den Quellcode der Volley-Bibliothek importieren konnte. Dies kann je nach verwendetem Quellcode variieren.
3. Ändern Sie Ihre build.gradleDatei
// If your module is a library project, this is needed
//to properly recognize 'android-library' plugin
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.3'
}
}
apply plugin: 'android-library'
android {
compileSdkVersion 17
buildToolsVersion = 17
sourceSets {
main {
// Here is the path to your source code
java {
srcDir 'src'
}
}
}
}
// This is the actual solution, as in https://stackoverflow.com/a/19037807/1002054
task clearJar(type: Delete) {
delete 'build/libs/myCompiledLibrary.jar'
}
task makeJar(type: Copy) {
from('build/bundles/release/')
into('build/libs/')
include('classes.jar')
rename ('classes.jar', 'myCompiledLibrary.jar')
}
makeJar.dependsOn(clearJar, build)
4. Führen Sie den gradlew makeJarBefehl von Ihrem Projektstamm aus.
Ich mein Fall hatte ich zu kopieren gradlew.batund gradleDateien von neuem Android - Projekt in meine Bibliothek Projektstamm. Sie sollten Ihre kompilierte Bibliotheksdatei myCompiledLibrary.jarim build\libsVerzeichnis finden.
Ich hoffe, jemand findet das nützlich.
Bearbeiten:
Vorbehalt
Obwohl dies funktioniert, treten beim Kompilieren eines Projekts mit mehreren Modulen doppelte Bibliotheksausnahmen auf, bei denen mehr als ein Modul (einschließlich Anwendungsmodul) von derselben jarDatei abhängt (z. B. haben Module ein eigenes Bibliotheksverzeichnis, auf das in einem build.gradlebestimmten Modul verwiesen wird). .
Wenn Sie eine einzelne Bibliothek in mehr als einem Modul verwenden müssen, würde ich diesen Ansatz empfehlen:
Android Gradle Build und die Support-Bibliothek