让 Android Studio、Gradle 和 Android 注释一起工作
Posted
技术标签:
【中文标题】让 Android Studio、Gradle 和 Android 注释一起工作【英文标题】:Getting Android Studio, Gradle and Android Annotations working together 【发布时间】:2014-10-07 01:18:33 【问题描述】:既然我决定在 android Studio 中使用 Android Annotations,我想通过 Gradle 来实现它。经过一些深思熟虑的研究,我发现通过 Gradle 实现 Android Annotations 的方法有旧有新,具体取决于 android studio、gradle 或 android annotations 的版本。我来到这个有用的教程 -> 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 注意:使用选项初始化 AndroidAnnotations 3.0.1 >androidManifestFile=D:\AndroidProjects\GradleTest\app\build\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 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.+'
我正在使用以下版本:
Android Studio 版本 0.8.2 Gradle 版本 0.12.2 android-apt 1.3 版 android 注释版本 3.0.1(见 build.gradle 文件)如果应该有解决这个问题的方法,请告诉我,因为我现在很困惑。 如果应该有更好的注释框架或使用很酷的注释的方法,也请告诉我。 如果它不应该再成为为 android 项目使用注释的常用方法,请也告诉我。
,但我更喜欢解决我的问题:)
干杯!
【问题讨论】:
我会放弃 AndroidAnnotations 以支持 ButterKnife 我看了看 ButterKnife,发现它似乎更容易理解。但我找不到任何注释,例如:@Background 或 @UiThread 就像在 Android 注释中一样,它们也总是很有帮助。像这样的功能还有其他实现吗?还是黄油刀主要用于视图? @ligi 实际上 ButterKnife 只提供了 AA 功能的一小部分,但它的设置需要在 build.gradle 中进行相同的工作。 :) @MadExHatter 那么你的问题是什么?你不明白警告?请阅读this 问题。我不知道apt参数有什么问题,可能是android-apt的问题。 问题是由于缺少 MainActivity_ 类,我无法构建 .apk 版本。此外,butterknife 比 AA 更容易实现……只是我的看法。因为它像“黄油”一样工作。 【参考方案1】:尝试从项目根目录运行 gradlew clean build。 然后在设备上运行之前尝试make项目(带有0和1的绿色箭头的按钮)。应该没问题。
【讨论】:
这根本不会改变情况。以上是关于让 Android Studio、Gradle 和 Android 注释一起工作的主要内容,如果未能解决你的问题,请参考以下文章
Android studio更新版本后Gradle sync简直是龟速,接下来让我们快速Gradle sync
关于Android Studio更新后一直Refreshing的解决办法!
Android Studio 中build.gradle文件的详细解析