基于ButterKnife lib,我升级到新版本8.5.1。我用了
compile 'com.jakewharton:butterknife:8.5.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'
但它在我的Android Studio 2.3中警告我。并且ButterKnife不起作用(不能绑定视图)。
警告:使用不兼容的插件进行注释处理: Android的贴切。这可能会导致意外行为。
我将 annotationProcessor 更改为 apt (我的gradle中有插件apply plugin: 'com.neenbedankt.android-apt'
)并且它在没有警告的情况下作为旧版本工作(我使用旧版本的apt 8.4.0)
compile 'com.jakewharton:butterknife:8.5.1'
apt 'com.jakewharton:butterknife-compiler:8.5.1'
我认为Android Studio 2.3不适用于Annottaion处理。我搜索并发现在Android Studio 2.2中启用注释处理器但在Android Studio 2.3中找不到
设置>构建,执行,部署>编译器>注解 处理器
任何人都可以解释这个问题吗?谢谢!
答案 0 :(得分:6)
麻烦
{u'audienceAbbreviation': u'',
u'audienceDescription': u'(hardware, gadgets, accessories, ...) - extend enabled',
u'audienceId': u'202174',
u'audienceName': u'XTND_3PD_SGU_ConsumerElectronics',
u'audienceStats': [{u'availableImpressions': u'0',
u'clientId': u'7927',
u'clientName': u'(SGU)',
u'dataDate': u'20170315',
u'growth': u'0',
u'lift30DayUniques': u'0',
u'linked30DayUniques': u'0',
u'pageViews': u'13894581',
u'unified30DayUniques': u'0',
u'uniques': u'960789352',
u'universeId': u'1',
u'universeName': u'All'}],
然后在app依赖
// Butterknife
//apply plugin: 'com.neenbedankt.android-apt' <--remove this
apply plugin: 'com.jakewharton.butterknife' <-- add this
dependencies {
//classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' <-- remove this
classpath 'com.jakewharton:butterknife-gradle-plugin:8.5.1' <-- add this
}
答案 1 :(得分:3)
简单易行。只需将这些行添加到build.gradle
即可compile 'com.jakewharton:butterknife:8.5.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'
答案 2 :(得分:0)
Gradle 2.2版中包含一个注释处理器,因此没有理由提供额外的处理器。
检查我的更新回答here。
答案 3 :(得分:0)
To use Butter Knife in directly project:
dependencies {
implementation 'com.jakewharton:butterknife:9.0.0-rc2'
annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-rc2'
}
To use Butter Knife in a library, add the plugin to your buildscript:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.jakewharton:butterknife-gradle-plugin:9.0.0-rc2'
}
}
apply it in your module:
apply plugin: 'com.android.library'
apply plugin: 'com.jakewharton.butterknife'