让Android Studio、Gradle和Android注释协同工作
既然我已经决定在androidstudio中使用Android注释,我想通过Gradle实现它。经过一些深思熟虑的研究,我发现,根据Android studio、Gradle或Android注释的版本不同,通过Gradle实现Android注释的方法有旧的和新的。我来到了这个有用的教程->,并试图实现这一点,首先,使用新的“android-L”作为类似SDK的目标 targetSDKversion“android-L”+编译SDK版本20+构建工具版本“20.0.0” 直到我试着用它 TargetSDK版本20+编译SDK版本20+构建工具版本“20.0.0” 而且 TargetSDK版本19+编译SDK版本19+构建工具版本“19.1.0” 每次我都收到两条警告,说我的java类似乎没有被预编译。尽管它似乎预先创建了build/generated/source/apt目录。但是没有来自MainActivity->MainActivity的预处理类_ 我总是收到以下警告: 注意:将日志文件解析为D:\AndroidProjects\GradleTest\app\build\generated\source\apt\androidannotations.log 注意:使用选项>{androidManifestFile=D:\AndroidProjects\GradleTest\app\build\intermediates\manifests\debug\AndroidManifests.xml,resourcePackageName=at.gradle.defuex.GradleTest}初始化AndroidAnnotations 3.0.1 警告:类型“[dummy1407928544078]”的未关闭文件;这些类型将不进行注释处理 警告:任何处理器都无法识别以下选项:“[androidManifestFile,resourcePackageName]” 我的build.gradle文件如下所示:让Android Studio、Gradle和Android注释协同工作,android,gradle,android-studio,android-gradle-plugin,android-annotations,Android,Gradle,Android Studio,Android Gradle Plugin,Android Annotations,既然我已经决定在androidstudio中使用Android注释,我想通过Gradle实现它。经过一些深思熟虑的研究,我发现,根据Android studio、Gradle或Android注释的版本不同,通过Gradle实现Android注释的方法有旧的和新的。我来到了这个有用的教程->,并试图实现这一点,首先,使用新的“android-L”作为类似SDK的目标 targetSDKversion“android-L”+编译SDK版本20+构建工具版本“20.0.0” 直到我试着用它 Targe
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 10
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
signingConfigs{
releaseConfig{
storeFile file("gradlekeystore.jks");
storePassword ("*************");
keyAlias "keyAlias";
keyPassword "*************";
}
}
buildTypes {
release {
runProguard false
debuggable false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.releaseConfig
}
debug {
debuggable true
applicationIdSuffix ".debug"
}
}
}
apt {
arguments {
androidManifestFile variant.processResources.manifestFile
resourcePackageName "at.gradle.defuex.gradletest"
}
}
dependencies {
apt "org.androidannotations:androidannotations:3.0+"
compile "org.androidannotations:androidannotations-api:3.0+"
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:19.+'
}
Im使用以下版本:
- Android Studio版本0.8.2
- 渐变版本0.12.2
- 安卓apt 1.3版
- android annotations版本3.0.1(如build.gradle文件所示)
- 如果这个问题有解决办法,请告诉我,因为我现在很困惑
- 如果有更好的注释框架或使用酷注释的方法,也请告诉我
- 如果在android项目中使用注释不再是一种常见的方式,请也告诉我
干杯 尝试从项目根目录运行gradlew clean build。
然后在设备上运行之前,尝试进行投影(带有绿色箭头0和1的按钮)。应该没问题。我会放弃对巴特克尼的安卓注释,费很快查看了巴特克尼,发现这似乎更容易理解。但我在Android注释中找不到任何总是有用的注释,例如:@Background或类似@UiThread的注释。还有其他类似功能的实现吗?或者butterknife主要用于视图吗?@ligi实际上butterknife只提供AA功能的一小部分,但它的设置需要在build.gradle中付出同样的努力。:)@那么你的问题是什么?你不明白这些警告吗?请阅读本期。我不知道apt参数有什么问题,可能是android-apt有问题。问题是由于缺少MainActivity类,我无法构建.apk版本。此外,butterknife比AA更容易实现……这只是我的观点。因为它就像“黄油”,这根本改变不了情况。