当前位置: 首页 > 知识库问答 >
问题:

设置注释处理器会导致元INF/依赖项问题

白子昂
2023-03-14

我试图处理这个错误(我在Android Studio更新东西之前从来没有过这个错误):

现在必须显式声明注释处理器。发现编译类路径上的以下依赖项包含注释处理器。请将它们添加到annotationProcessor配置中。-auto-value-1.4.jar(com.google.auto.value:auto-value:1.4)或者,设置android.defaultconfig.javaCompileOptions.AnnotationProcessorOptions.IncludeCompileClasspath=true以继续前面的行为。请注意,不推荐使用此选项,以后将删除此选项。有关更多详细信息,请参见https://developer.android.com/r/tools/annotation-processor-error-message.html。

所以我添加了一个注释处理器:annotationprocessor'com.google.auto.value:auto-value:1.4'

现在,显示了一个新的错误:

找到多个具有操作系统独立路径“meta-inf/dependencies”的文件

我读到我应该更改打包选项(发现多个文件具有操作系统独立路径“meta-inf/license”+错误:发现多个文件具有操作系统独立路径“meta-inf/license”+等)。

但是,有没有一种方法可以解决第一个问题,而不触发第二个问题,只需对我的应用程序build.gradle做一些改动?这样会更好。

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.example.x.x"
        minSdkVersion 26
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        renderscriptTargetApi 26
        renderscriptSupportModeEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.google.firebase:firebase-admin:6.5.0'
    implementation 'com.android.support:cardview-v7:27.1.1'
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    implementation 'com.android.support:support-v4:27.1.1'
    implementation 'com.android.support:design:27.1.1'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

    implementation 'com.github.mancj:MaterialSearchBar:0.7.6'

    annotationProcessor 'com.google.auto.value:auto-value:1.4'
}

共有1个答案

沃阳曜
2023-03-14

您可以完全排除该文件,也可以将其限制为一次出现:

android {

    ...
    packagingOptions {
        // pickFirst "META-INF/DEPENDENCIES"
        exclude "META-INF/DEPENDENCIES"
    }
}
 类似资料:
  • 我正在使用gradle/querydsl和JPA 2.1。 我想使用APT(qenties)生成querydsl元数据。 为此,我使用了gradle apt插件和gradle 4.7 在我的项目中,我使用以下配置了compileJava选项:

  • 我有一个包含2个模块的maven项目。其中一个模块包含注释处理器。当我尝试将项目作为Android项目的依赖项导入时,它不会运行注释处理器。找不到生成的类文件。 我从jitpack导入如上所示的项目。jitpack上的构建成功了,我也可以在本地访问代码,这意味着编译成功了。但是应该生成的类并没有生成。所以要么是处理器没有启动,要么是我生成的类在错误的位置?android项目确实使用了许多其他带有注

  • 该链接包含在错误404s中(https://developer.android.com/r/tools/annotation-processor-error-message.html),因此没有帮助。 我已经在android studio设置中启用了注释处理,并将添加到我的注释处理器选项中。我还尝试将、和添加到处理器FQ名称中,但这也没有帮助。 这些是我添加到dependecies下的默认buil

  • 我有使用maven-processor-plugin的代码,让Hibernate在Java项目的文件夹一些类。我正在准备将项目迁移到Java 11,在开发环境和运行时环境中。 到目前为止,在Hibernate 4.3.10.Final和Java 8中一切正常。在安装JDK 11和使用Hibernate5.4.4.Final之后,我遇到了臭名昭著的<code>javax.annotation。生成的

  • 我有一个简单的注释处理器,应用如下: 要使此处理器工作,-函数的名称和-接口函数参数必须匹配。它检查此并使用注释的参数来查看提供的类并在此基础上进行一些代码生成。 它生成一个文件。 我已经阅读了关于增量注释处理的文档,但是我不能决定将哪一个类别应用到这个处理器上。以下是我的考虑: < li >它不能是< code>isolating,因为它并不从带注释的元素的AST中派生所有内容,因为它也从注释参

  • 问题内容: 我认为许多专业人员不切换到注释驱动的依赖注入的主要原因是,它不支持在开发/测试/生产环境之间进行切换。在许多情况下,出于开发目的,您不仅可以使用不同的服务(及其连接),而且有时还需要模拟它们或创建Dummy实例。 昨天我想出了一种使用Spring注释的解决方案: …应该可以,但是不好。 对于您的解决方案或论点,我将非常感兴趣:为什么这不是一个真正的问题;-)欢迎Guice,Spring