Android 为什么butterknife 9.0.0-SNAPSHOT无法解析?

Android 为什么butterknife 9.0.0-SNAPSHOT无法解析?,android,androidx,butterknife,Android,Androidx,Butterknife,我想使用AndroidX库,下面是我为Butterknife的Gradle设置 应用程序:模块依赖关系 implementation 'com.jakewharton:butterknife:9.0.0-SNAPSHOT' annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-SNAPSHOT' dependencies { classpath 'com.android.tools.build:gradle

我想使用AndroidX库,下面是我为Butterknife的Gradle设置

应用程序:模块依赖关系

implementation 'com.jakewharton:butterknife:9.0.0-SNAPSHOT'
 annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-SNAPSHOT'
dependencies {
      classpath 'com.android.tools.build:gradle:3.3.0-alpha09'
      classpath 'com.google.gms:google-services:4.0.1'
      classpath 'com.jakewharton:butterknife-gradle-plugin:9.0.0-SNAPSHOT'
      // NOTE: Do not place your application dependencies here; they belong
      // in the individual module build.gradle files
    }
repositories {
        google()
        mavenCentral()
        maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
        jcenter()
    }
插件

应用插件:“com.jakewharton.butterknife”

项目相关性

implementation 'com.jakewharton:butterknife:9.0.0-SNAPSHOT'
 annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-SNAPSHOT'
dependencies {
      classpath 'com.android.tools.build:gradle:3.3.0-alpha09'
      classpath 'com.google.gms:google-services:4.0.1'
      classpath 'com.jakewharton:butterknife-gradle-plugin:9.0.0-SNAPSHOT'
      // NOTE: Do not place your application dependencies here; they belong
      // in the individual module build.gradle files
    }
repositories {
        google()
        mavenCentral()
        maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
        jcenter()
    }
项目存储库

implementation 'com.jakewharton:butterknife:9.0.0-SNAPSHOT'
 annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-SNAPSHOT'
dependencies {
      classpath 'com.android.tools.build:gradle:3.3.0-alpha09'
      classpath 'com.google.gms:google-services:4.0.1'
      classpath 'com.jakewharton:butterknife-gradle-plugin:9.0.0-SNAPSHOT'
      // NOTE: Do not place your application dependencies here; they belong
      // in the individual module build.gradle files
    }
repositories {
        google()
        mavenCentral()
        maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
        jcenter()
    }

查看关于Butter Knife 9.0.0-SNAPSHOT和Android studio 3.0之间冲突的对话。

添加
名称“Sonatype快照”

dependencies {
        classpath 'com.android.tools.build:gradle:3.1.3' //3.1.4

    }

    buildscript {
            repositories {
                google()
                jcenter()
                mavenCentral()
                // TODO remove after butterknife 9 graduates to stable
                maven {
                    name 'Sonatype SNAPSHOTs';
                    url 'https://oss.sonatype.org/content/repositories/snapshots/'
                }

            }
FYI

你可以用

   implementation 'com.jakewharton:butterknife:8.8.1'
   annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
阅读更新: 您现在可以简单地使用ButterKnife 9-rc02代替上述解决方案:

...
dependencies {
    implementation 'com.jakewharton:butterknife:9.0.0-rc2'
    annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-rc2'
...

根据纳文的回答,解决方案是
但是,缺少一些细节。有关完整的解决方案,请参考以下渐变配置:

buildscript {
    repositories {
        jcenter()
        google()
        maven { url "https://jitpack.io" }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.0-alpha10'
    }
}

allprojects {
    repositories {
        jcenter()
        google()
        maven { url "https://jitpack.io" }
        mavenCentral()
        maven {
            name 'Sonatype SNAPSHOTs';
            url 'https://oss.sonatype.org/content/repositories/snapshots/'
        }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}


...
dependencies {
    implementation 'com.jakewharton:butterknife:9.0.0-SNAPSHOT'
    annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-SNAPSHOT'
...
基本上,不要使用建议中的
apply插件:“com.jakewharton.butterknife”和
classpath“com.jakewharton:butterknife gradle插件:9.0.0-SNAPSHOT”

此外,此Android Studio设置>编译器配置:
首先,我要感谢@intellij amiya和@Nabster的宝贵贡献,因为这个答案是基于他们提供的答案

我的Gradle设置如下

...
apply plugin: 'com.jakewharton.butterknife'
....
dependencies{
    implementation 'com.jakewharton:butterknife:9.0.0-SNAPSHOT'
    annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-SNAPSHOT'
}
...

    // Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {

    repositories {
        google()
        mavenCentral()
        maven {
            name 'Sonatype SNAPSHOTs'
            url 'https://oss.sonatype.org/content/repositories/snapshots/'
        }
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.0-alpha09'
        classpath 'com.google.gms:google-services:4.0.1'
        classpath 'com.jakewharton:butterknife-gradle-plugin:9.0.0-SNAPSHOT'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        mavenCentral()
        maven {
            name 'Sonatype SNAPSHOTs'
            url 'https://oss.sonatype.org/content/repositories/snapshots/'
        }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

在中还添加了对Java 1_8的支持 android部分中的build.gradle

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

请注意,Butterknife现在已达到10.1.0,不再需要快照版本或任何其他maven库。AndroidX迁移是一种魅力。仅包括:

dependencies {
    implementation 'com.jakewharton:butterknife:10.1.0'
    annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'
}
或者,如果出于某种原因,您要将Kotlin和butterknife合并,请将
annotationProcessor
替换为
kapt

有关更多信息,请访问:

遵循GitHub存储库的说明,该存储库在最新版本中100%适用于我:


它在androidx中工作

嗨,感谢你的回复。我现在得到这个错误。错误:包android.support.annotation不存在错误:找不到符号类UiThread错误:找不到符号类CallSuper@Ismail使用
:butterknife:8.8.1
?是。生成的ViewBinding类一直从android软件包而不是androidx软件包导入注释。当butterknife 9投入生产时,需要更新此解决方案。