Finché la funzionalità di Android che vi serve è in un barattolo invece di un AAR, allora si dovrebbe essere in grado di farlo abbastanza facilmente come la mia squadra ha un paio di manufatti come questo. Per Android manufatti vaso in Maven centrale, è sufficiente aggiungere la dipendenza:
compile 'com.google.android:android:4.1.1.4'
Se la funzionalità è in uno dei manufatti installati tramite il Gestore Android SDK, allora si può solo aggiungere la dipendenza come sopra, ma è necessario aggiungere il repo Android locale per tirare i manufatti:
maven { url "file:///${System.env.ANDROID_HOME}/extras/android/m2repository" }
Modifica
dimenticato anche parlare, ti consigliamo di segnare i manufatti Android come previsto in modo che don' t ottenere dep scontri di fine Potete farlo utilizzando il seguente:
configurations {
provided
compile.extendsFrom provided
}
dependencies {
provided('com.google.android:android:4.1.1.2')
}
fatemi sapere se avete bisogno di un esempio build.gradle e vorrei aggiungere uno.
Edit 2
seguito è riportato un esempio build.gradle che usiamo per uno dei nostri progetti.
apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'pmd'
apply plugin: 'jacoco'
apply plugin: 'findbugs'
apply plugin: 'project-report'
apply plugin: 'jxr'
group = 'com.example'
archivesBaseName = 'project-name'
version = '1.0.0-SNAPSHOT'
sourceCompatibility = 1.7
configurations {
provided
compile.extendsFrom provided
}
buildscript {
repositories {
maven { url 'http://repo1.maven.org/maven2/' }
maven { url "http://jcenter.bintray.com" }
}
dependencies {
classpath('net.davidecavestro:gradle-jxr-plugin:0.1')
}
}
repositories {
mavenCentral()
if (project.hasProperty("mavenLocal")) {
maven { url "${System.env.HOME}/.m2/repository" }
}
maven { url "file:///${System.env.ANDROID_HOME}/extras/android/m2repository" }
}
dependencies {
compile('com.google.code.findbugs:annotations:2.0.2')
compile('com.google.code.gson:gson:2.2.4')
compile('com.google.guava:guava:15.0')
provided('com.google.android:android:4.0.1.2')
testCompile('commons-io:commons-io:2.4')
testCompile('junit:junit:4.11')
testCompile('org.robolectric:robolectric:2.3')
testCompile('org.mockito:mockito-all:1.10.8')
}
test {
dependsOn ':assemble'
testLogging {
showExceptions = true
showStackTraces = true
exceptionFormat = "full"
events "passed", "skipped", "failed"
}
}
javadoc {
source = sourceSets.main.allJava
classpath = test.classpath
}
jacocoTestReport {
dependsOn test
description = "Generate Jacoco coverate reports after running tests."
reports {
xml.enabled false
csv.enabled false
html.destination "${buildDir}/reports/jacoco"
}
}
pmd.ignoreFailures = true
pmdTest.enabled = false
pmdMain.enabled = true
pmdMain {
reports {
xml.enabled = false
html.enabled = true
}
}
findbugs.ignoreFailures = true
findbugs.excludeFilter = file('./findbugs-exclude-filter.xml')
findbugsTest.enabled = false
findbugsMain.enabled = true
findbugsMain {
reports {
xml.enabled = false
html.enabled = true
}
}
task wrapper(type: Wrapper) {
gradleVersion = '2.1'
distributionUrl = "http://services.gradle.org/distributions/gradle-${gradleVersion}-all.zip"
}
task sourcesJar(type: Jar) {
classifier = 'sources'
from sourceSets.main.allSource
}
task javadocJar(type: Jar) {
classifier = 'javadoc'
from "${projectDir}/build/docs"
}
artifacts {
archives sourcesJar
archives javadocJar
}
uploadSite.dependsOn(':check')
check.dependsOn('sourcesJar')
check.dependsOn('javadoc')
check.dependsOn('jacocoTestReport')
check.dependsOn('projectReport')
check.dependsOn('jxr')
Qual è il valore nella creazione di un "modulo java semplice", su un progetto di libreria, in questo caso? Dopo tutto, non è possibile utilizzare quel modulo Java in qualcosa di diverso da un'app Android. – CommonsWare
Questo non è pensato per l'app del telefono standard, ma per l'hardware personalizzato. Vogliamo essere in grado di condividere lo stesso jar tra più applicazioni sul dispositivo. – mr49