No se puede hacer un proyecto en AndroidStudio con la biblioteca de anotaciones de Android
gradle android-studio (2)
He visto varias discusiones y blogs sobre cómo compilar aplicaciones de Android en Android Studio con el marco de anotaciones de Android, especialmente este , pero ninguno de ellos me ayudó a comenzar.
Estoy utilizando Android Studio 0.8.9 y apunto a un binario descargado de Gradle 2.1. Estoy usando Ubuntu 14.04.
El proceso de compilación de Gradle dice que me falta una copia de AndroidManifest.xml en una ubicación determinada (consulte el resultado a continuación), aunque lo encontré al navegar en esta carpeta con mi explorador de archivos.
Por favor, tenga en cuenta que para eliminar advertencias, reemplacé
variant.processResources.manifestFile
por
variant.outputs.processResources.manifestFile
en el guión de gradle.
Aquí mi script de compilación de Gradle:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath ''com.android.tools.build:gradle:0.13.2''
classpath ''com.neenbedankt.gradle.plugins:android-apt:1.3''
}
}
apply plugin: ''android''
repositories {
mavenCentral()
}
configurations {
apt
}
dependencies {
compile fileTree(include: ''*.jar'', dir: ''libs'')
compile files(''libs/androidsvg-1.2.1.jar'')
compile ''com.android.support:appcompat-v7:20.0.0''
compile ''org.androidannotations:androidannotations-api:3.0''
apt ''org.androidannotations:androidannotations:3.0''
}
android {
compileSdkVersion 20
buildToolsVersion "20.0.0"
defaultConfig {
minSdkVersion 9
targetSdkVersion 20
}
sourceSets {
main {
manifest.srcFile ''AndroidManifest.xml''
java.srcDirs = [''src'']
resources.srcDirs = [''src'']
aidl.srcDirs = [''src'']
renderscript.srcDirs = [''src'']
res.srcDirs = [''res'']
assets.srcDirs = [''assets'']
}
// Move the tests to tests/java, tests/res, etc...
instrumentTest.setRoot(''tests'')
// Move the build types to build-types/<type>
// For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
// This moves them out of them default location under src/<type>/... which would
// conflict with src/ being used by the main source set.
// Adding new build types or product flavors should be accompanied
// by a similar customization.
debug.setRoot(''build-types/debug'')
release.setRoot(''build-types/release'')
}
}
def getSourceSetName(variant) {
return new File(variant.dirName).getName();
}
android.applicationVariants.all { variant ->
def aptOutputDir = project.file("${project.buildDir}/source/apt/")
def aptOutput = new File(aptOutputDir, variant.dirName)
println "****************************"
println "variant: ${variant.name}"
println "manifest: ${variant.outputs.processResources.manifestFile}"
println "aptOutput: ${aptOutput}"
println "****************************"
android.sourceSets[getSourceSetName(variant)].java.srcDirs+= aptOutput.getPath()
variant.javaCompile.options.compilerArgs += [
''-processorpath'', configurations.apt.getAsPath(),
''-AandroidManifestFile='' + variant.outputs.processResources.manifestFile,
''-s'', aptOutput
]
variant.javaCompile.source = variant.javaCompile.source.filter { p ->
return !p.getPath().startsWith(aptOutputDir.getPath())
}
variant.javaCompile.doFirst {
aptOutput.mkdirs()
}
}
Aquí mi salida de la consola Gradle:
Information:Gradle tasks [:compileDebugSources]
****************************
variant: debug
manifest: [<my_home>/AndroidStudioProjects/ChessPositionManagerAndroid/build/intermediates/manifests/full/debug/AndroidManifest.xml]
aptOutput: <my_home>/AndroidStudioProjects/ChessPositionManagerAndroid/build/source/apt/debug
****************************
****************************
variant: release
manifest: [<my_home>/AndroidStudioProjects/ChessPositionManagerAndroid/build/intermediates/manifests/full/release/AndroidManifest.xml]
aptOutput: <my_home>/AndroidStudioProjects/ChessPositionManagerAndroid/build/source/apt/release
****************************
:preBuild
:preDebugBuild
:checkDebugManifest
:preReleaseBuild
:prepareComAndroidSupportAppcompatV72000Library UP-TO-DATE
:prepareComAndroidSupportSupportV42000Library UP-TO-DATE
:prepareDebugDependencies
:compileDebugAidl UP-TO-DATE
:compileDebugRenderscript UP-TO-DATE
:generateDebugBuildConfig UP-TO-DATE
:generateDebugAssets UP-TO-DATE
:mergeDebugAssets UP-TO-DATE
:generateDebugResValues UP-TO-DATE
:generateDebugResources UP-TO-DATE
:mergeDebugResources UP-TO-DATE
:processDebugManifest UP-TO-DATE
:processDebugResources UP-TO-DATE
:generateDebugSources UP-TO-DATE
:compileDebugJava
Note: Resolve log file to <my_home>/AndroidStudioProjects/ChessPositionManagerAndroid/build/source/apt/androidannotations.log
Note: 18:29:17.724 [Daemon Thread 16] INFO o.a.AndroidAnnotationProcessor:86 - Initialize AndroidAnnotationProcessor with options {androidManifestFile=[<my_home>/AndroidStudioProjects/ChessPositionManagerAndroid/build/intermediates/manifests/full/debug/AndroidManifest.xml]}
Note: 18:29:17.869 [Daemon Thread 16] INFO o.a.AndroidAnnotationProcessor:117 - Start processing for 1 annotations on 8 elements
Error:18:29:17.885 [Daemon Thread 16] ERROR o.a.h.AndroidManifestFinder:95 - Could not find the AndroidManifest.xml file in specified path : [<my_home>/AndroidStudioProjects/ChessPositionManagerAndroid/build/intermediates/manifests/full/debug/AndroidManifest.xml]
Note: 18:29:17.886 [Daemon Thread 16] INFO o.a.p.TimeStats:81 - Time measurements: [Whole Processing = 17 ms], [Extract Annotations = 13 ms], [Extract Manifest = 3 ms],
Note: 18:29:17.887 [Daemon Thread 16] INFO o.a.AndroidAnnotationProcessor:131 - Finish processing
Note: 18:29:17.954 [Daemon Thread 16] INFO o.a.AndroidAnnotationProcessor:117 - Start processing for 0 annotations on 0 elements
Note: 18:29:17.954 [Daemon Thread 16] INFO o.a.p.TimeStats:81 - Time measurements: [Whole Processing = 0 ms],
Note: 18:29:17.955 [Daemon Thread 16] INFO o.a.AndroidAnnotationProcessor:131 - Finish processing
Warning:Unclosed files for the types ''[dummy1412872157721]''; these types will not undergo annotation processing
1 warning
Error:Execution failed for task '':compileDebugJava''.
> Compilation failed; see the compiler error output for details.
Information:BUILD FAILED
Information:Total time: 3.981 secs
Information:2 errors
Information:1 warning
Information:See complete output in console
Me gustaría disculparme si alguna vez mi error es demasiado obvio, pero he estado buscando durante algunas horas, sin éxito.
¿Has intentado agregar alguna configuración para apt?
dependencies {
...
classpath ''com.neenbedankt.gradle.plugins:android-apt:1.4''
}
apply plugin: ''android-apt''
apt {
arguments {
androidManifestFile variant.processResources.manifestFile
resourcePackageName ''<your package>''
}
}
Aplique el complemento dentro de su archivo buid.gradle (Gradle de nivel de módulo) que se resolverá
apply plugin: ''android-apt''