既然我决定在Android Studio中使用Android Annotations,我想通过Gradle实现它.经过一些深思熟虑的研究后,我发现有更旧的方法可以通过Gradle实现Android Annotations,具体取决于android studio,gradle或android注释的版本.我来到这个有用的教程 - > http://www.jayway.com/2014/02/21/androidannotations-setup-in-android-studio/,并试图实现这一点,首先,使用新的'android- L'作为目标SDK喜欢
targetSDKversion"android-L"+ compileSdkVersion 20 + buildToolsVersion"20.0.0"
直到我试着用它
targetSDKversion 20 + compileSdkVersion 20 + buildToolsVersion"20.0.0"
并且
targetSDKversion 19 + compileSdkVersion 19 + buildToolsVersion"19.1.0".
每次我得到2个警告,我的java类似乎没有得到预编译.即使它似乎预先创建了build/generated/source/apt目录.但没有我的MainActivity预处理类 - > MainActivity_
我总是得到以下警告:
注意:将日志文件解析为D:\ AndroidProjects\GradleTest\app\build\generated\source\apt\androidannotations.log注意:使用选项> {androidManifestFile = D:\ AndroidProjects\GradleTest\app\build \初始化AndroidAnnotations 3.0.1 intermediates\manifests\debug\AndroidManifest.xml,resourcePackageName = at.gradle.defuex.gradletest}
警告:类型'[dummy1407928544078]'的未闭合文件; 这些类型不会进行注释处理
警告:任何处理器都无法识别以下选项:'[androidManifestFile,resourcePackageName]'
我的build.gradle文件如下所示:
buildscript{
repositories{
mavenCentral()
}
dependencies{
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.3'
}
}
repositories{
mavenCentral()
}
apply plugin: 'com.android.application'
apply plugin: 'android-apt'
android {
compileSdkVersion 19
buildToolsVersion "19.1.0"
defaultConfig {
applicationId "at.gradle.defuex.gradletest"
minSdkVersion …Run Code Online (Sandbox Code Playgroud) android gradle android-annotations android-studio android-gradle-plugin
有些人可能已经看过Android Studio Gradle i/o,Xavier Ducrohet在他的快速演讲中提到了如何使用android gradle构建系统.我的问题是,文档和演示文稿缺乏快速启动的信息.或者至少对我而言.在我的下面的代码中,我试图解决gradle android插件系统的使用,我确定我有一些错误的步骤,一些正确.(我没有经常使用蚂蚁或maven)
也许我会一步一步地完成它到目前为止我所做的事情.
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 16
signingStoreLocation = "debug.keystore"
signingStorePassword = "***************"
signingKeyAlias = "***************"
signingKeyPassword = "**************"
}
Run Code Online (Sandbox Code Playgroud)
首先我配置调试版本的默认设置(或使用默认设置的每个版本..这意味着没有构建类型或风格?)
sourceSets:
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['com.project.maingradle', 'com.otherproject.changedsourcefilesforthisproject']
res.srcDirs = ['res', 'resfromotherprojectusingpartsofsamecode']
assets.srcDirs = ['assets']
}
}
Run Code Online (Sandbox Code Playgroud)
在这一步中,我定义了sourceSets.这是我第一个问题.如果我有相同的代码我想用于两个项目,是否可能/或应该如何定义更多的源集,如 - >
sourceSets {
main {...}
srcsetforanotherproject {...}
}
Run Code Online (Sandbox Code Playgroud)
...取决于底层的src文件夹?或者,是否应该像我在第一个sourceSets声明中那样定义sourceSets,通过定义一组不同的,例如res文件夹,如Xavier Ducrohet所提到的?(还不清楚我是否只能以这种方式对res文件夹执行此操作,或者对java src代码文件夹执行此操作,例如java.srcDirs = ['com.project.maingradle','com.otherproject.changedsourcefilesforthisproject'].
signingConfigs:
signingConfigs {
debugRelease {
storeFile file("debug.keystore")
}
release {
storeFile …Run Code Online (Sandbox Code Playgroud)