我已经查看了几个关于在Android Studio中使用AndroidAnnotations框架编译Android应用程序的讨论和博客,专门为this one,但他们都没有帮助我开始。无法在AndroidStudio中使用AndroidAnnotations库创建项目
我正在使用Android Studio 0.8.9,并且指向下载的Gradle 2.1二进制文件。 我使用的是Ubuntu 14.04。
Gradle编译过程说我错过了AndroidManifest.xml在给定位置(请参阅下面的输出)的副本,尽管我在使用文件浏览器导航到此文件夹时发现了它。
也请注意,为了去除警告,我在剧本的gradle更换
variant.processResources.manifestFile
通过
variant.outputs.processResources.manifestFile
。
这里我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()
}
}
这里我的摇篮控制台输出:
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
我想道歉,如果我曾经的错误是太明显了,但我一直在寻找几个小时,没有成功。
我试着添加建议(取代我的包),但我得到了错误“不支持的Gradle DSL方法找到:apt()”。添加“apply plugin:apt”让我陷入另一个错误(找不到插件) – loloof64 2014-10-09 18:39:15
我更新了我的答案,确保你使用android-apt作为插件 – brwngrldev 2014-10-09 18:41:38
更新了我的脚本:我遇到了错误“No such property:projectDependencies对于类:com.android.build.gradle.internal.api.ApplicationVariantImpl_Decorated“ – loloof64 2014-10-09 18:43:14