由于butterknife依赖错误,我无法构建android项目。
误差
任务':app:javaPreCompileDebug'执行失败。
无法解析配置':app:debugAnnotationProcessorClasspath'的所有文件。转换butterknife-compiler-8.6.0.jar (com.jakewharton:butterknife-compiler:8.6.0)以匹配属性失败{artifactType = processed-jar org.gradle.category =库,org.gradle。libraryelements = jar, org.gradle.status =释放,org.gradle.usage = java运行时}。比;JetifyTransform:/Users/jordan/.gradle/caches/modules-2/files-2.1/com.jakewharton/butterknife-compiler/8.6.0/d3defb48a63aa0591117d0cec09f47a13fffda19/butterknife-compiler-8.6.0.jar执行失败。比;转换"/Users/jordan/.gradle/caches/modules-2/files-2.1/com.jakewharton/butterknife-compiler/8.6.0/d3defb48a63aa0591117d0cec09f47a13fffda19/butterknife-compiler-8.6.0.jar"失败使用Jetifier。原因:AmbiguousStringJetifierException,消息给定工件包含一个带有包引用的字符串字面值"android.support.v4。不能安全地重写的内容。使用反射(如注释处理器)的库需要手动更新以增加对androidx的支持。(使用——stacktrace运行欲知详情。)这是一个已知的异常,并且Jetifier将无法对这个库进行jetify。建议:-如果你认为这个库不需要被认证(例如,如果它已经支持AndroidX,或者如果它不使用支持)添加android.jetifier.blacklist =的正则表达式(或简单名称)的逗号分隔列表你不希望被授权的库到gradle.properties文件。-如果你认为这个库需要被美化(例如,如果它使用旧的支持库,如果它没有破坏你的应用程序)Jetified),请联系库的作者将此库更新为支持AndroidX,并在其发布后使用支持的版本。如果你需要进一步的帮助,请在
留言
Gradle Build File in App Level
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.recyclerview:recyclerview:1.2.0-beta02'
implementation 'com.melnykov:floatingactionbutton:1.3.0'
// implementation 'com.android.support:design:28.0.0'
// implementation 'com.android.support:support-v13:28.0.0'
implementation 'com.jpardogo.materialtabstrip:library:1.0.6'
implementation 'com.jakewharton:butterknife:8.6.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.6.0'
}
如何解决?
请注意,根据官方文档,黄油刀工具现在已弃用。
他们建议切换到视图绑定。
因此,我请求您重新考虑使用黄油刀的决定。
在你的gradle文件中,请确保下面的行被正确添加。
添加这些更改,然后单击File>在Android Studio中禁用缓存和重启
android {
...
// Butterknife requires Java 8.
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
依赖
dependencies {
implementation 'com.jakewharton:butterknife:10.2.3'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.3'
}
如果您正在使用Kotlin,请用kapt替换annotationProcessor。
要在图书馆中使用黄油刀,请按照图书馆项目部分提供的步骤操作。内部官方文件