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

Android,Realm,Gradle:错误:注释处理器:没有找到Realm处理器

谢选
2023-03-14

Android Studio2.3。3.

我的计划失败了。格拉德尔:

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

buildscript {
    ext.kotlin_version = '1.1.3'
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.3'
        classpath 'com.google.gms:google-services:2.0.0-alpha6'
        classpath "io.realm:realm-gradle-plugin:3.5.0"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
        maven { url 'https://dl.bintray.com/jetbrains/anko' }
    }
}

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

我的应用程序构建。格拉德尔。

buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.+'
    }
}
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'io.fabric'

repositories {
    maven { url 'https://maven.fabric.io/public' }
    mavenCentral()
}

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.0"
    dexOptions {
        jumboMode = true
    }

    defaultConfig {
        applicationId "my.project.com"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 53
        versionName "1.1.13"

        javaCompileOptions {
            annotationProcessorOptions {
                arguments = ["resourcePackageName": android.defaultConfig.applicationId]
            }
        }
    }

    // exclude buildTypes = "debug" from build Variants
    variantFilter { variant ->
        if (variant.buildType.name.equals('debug')) {
            variant.setIgnore(true);
        }
    }

    buildTypes {
        def APP_NAME_STAGE = "My project Stage"
        def APP_ID_SUFFIX_STAGE = ".stage"

        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        stage {
            initWith(debug)
        }
    }

    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }
    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
    }

    lintOptions {
        abortOnError false
    }
}

def AAVersion = '4.3.0'

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    compile('com.digits.sdk.android:digits:1.11.0@aar') {
        transitive = true;
    }
    compile('com.crashlytics.sdk.android:crashlytics:2.6.0@aar') {
        transitive = true;
    }
    compile 'com.android.support:appcompat-v7:23.0.0'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    compile 'com.android.volley:volley:1.0.0'
    compile 'com.baoyz.swipemenulistview:library:1.3.0'
    compile 'com.google.android.gms:play-services-gcm:9.0.2'
    compile 'com.google.code.gson:gson:2.7'
    compile 'com.miguelcatalan:materialsearchview:1.4.0'
    compile 'com.squareup.okhttp:okhttp-urlconnection:2.7.3'
    compile 'com.squareup.okhttp:okhttp:2.7.3'
    compile 'com.theartofdev.edmodo:android-image-cropper:2.2.5'
    compile 'commons-codec:commons-codec:1.9'
    compile 'commons-io:commons-io:2.4'
    compile 'org.apache.commons:commons-lang3:3.4'
    compile 'org.apache.httpcomponents:httpcore:4.4.4'
    compile 'org.apache.httpcomponents:httpmime:4.3.6'
    compile 'us.feras.mdv:markdownview:1.1.0'
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'org.jetbrains.anko:anko-sdk15:0.9.1'
    annotationProcessor "org.androidannotations:androidannotations:$AAVersion"
    compile "org.androidannotations:androidannotations-api:$AAVersion"
    testCompile 'junit:junit:4.12'
}

项目建造和运行成功。所以现在我想添加领域。我加上build.gradle

apply plugin: 'realm-android'

结果我得到了一个错误。

错误:注释处理器__gen。AnnotationProcessorWrapper_stage_io_realm_processor_RealmProcessor'未找到错误:任务执行失败': app: compileStageJavaBackJavac'。

编译失败;有关详细信息,请参阅编译器错误输出。: app: compileDevJavaBackJavac生成源的目的地已被kapt修改。前一个值=myProject\app\build\生成\Source\apt\dev错误:注释处理器'__gen。AnnotationProcessorWrapper_dev_io_realm_processor_RealmProcessor没找到

共有2个答案

后阳炎
2023-03-14

如果使用静态编程语言,则需要使用KAPT。

annotationProcessor "org.androidannotations:androidannotations:$AAVersion"

应该是

kapt "org.androidannotations:androidannotations:$AAVersion"

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'io.fabric'
apply plugin: 'realm-android'

应该是

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'io.fabric'
apply plugin: 'realm-android'

 //       javaCompileOptions {
 //           annotationProcessorOptions {
 //               arguments = ["resourcePackageName": android.defaultConfig.applicationId]
 //           }
 //       }

kapt {
    arguments {
        arg('resourcePackageName', android.defaultConfig.applicationId)
    }
}

编辑:基于https://stackoverflow.com/a/34708575/2413303

kapt {
    arguments {
        arg('androidManifestFile', variant.outputs[0]?.processResources?.manifestFile)
        arg('resourcePackageName', android.defaultConfig.applicationId)
    }
}

如果这仍然不起作用,那么这个问题就变成了与Android注释相关的。

聂奇
2023-03-14

我找到了解决办法。两种方法:

  1. 通过apt插件

在应用程序的budile.gradle:

apply plugin: 'com.neenbedankt.android-apt'

apt {
    arguments {

        resourcePackageName android.defaultConfig.applicationId

        androidManifestFile variant.outputs[0]?.processResources?.manifestFile
    }

}

dependencies {
apt 'io.realm:realm-android-library:3.5.0'
apt "org.androidannotations:androidannotations:$AAVersion"
}

或者

卡普特插件

apply plugin: 'kotlin-kapt'

kapt {

    arguments {

        arg( "resourcePackageName", android.defaultConfig.applicationId)

        arg( "androidManifestFile", 

        variant.outputs[0]?.processResourcesTask?.manifestFile)

    }

}

依赖关系{

kapt 'io.realm:realm-android-library:3.5.0'

kapt "org.androidannotations:androidannotations:$AAVersion"

}

 类似资料:
  • 我试图让非空注释在NetBeans中工作,这是一个又一个令人头痛的问题。 我遵循了https://checkerframework.org/manual/#netbeans的说明,可以确认是作为编译库和处理器库添加的。我启用了注释处理,并添加了作为注释处理器。 在源代码中,我可以导入import和have注释编译。然而,在构建过程中,我发现: 我需要做什么来解决此错误?

  • null 我的git和Gradle技能是初学者水平。我将非常感谢对这项任务的任何帮助。谢谢你。

  • 无法理解如何配置build.gradle以便在没有任何JPA/JDO/Mongo的情况下使用querydsl注释处理器。我想使用@QueryEntity注释生成Q类,这样我就可以使用DSL支持编写动态SQL查询,然后将查询转换为纯文本并提供给Spring R2DBC DatabaseClient Executor。 我正在使用Gradle5,Spring Data R2DBC,Spring Boo

  • 我正在尝试创建一个自定义注释,例如,确保字段或方法既是又是,如果字段或方法既不是又不是,则会生成编译时错误,如以下示例所示: 到目前为止,我已经完成了两个自定义注释接口: 和: 正如所暗示的,我不知道如何生成编译时错误。Processor的文档清楚地表明我不应该抛出异常, 如果处理器抛出未捕获的异常,该工具可能会停止其他活动注释处理器。 它接着描述了当提出错误条件时会发生什么,现在是如何提出错误条

  • 问题内容: 我正在尝试创建一个自定义批注,例如,以确保字段或方法为and ,并且如果该字段或​​方法不为and ,则将生成编译时错误,如以下示例所示: 到目前为止,我已经完成了两个自定义注释接口: 和: 如所示,我不知道如何生成编译时错误。Processor 的文档清楚地表明,我不应该抛出异常, 如果处理器抛出未捕获的异常,则该工具可能会停止其他活动的注释处理器。 它继续描述了引发错误条件时会发生

  • 需要注释处理器的帮助。我创建了一个简单的注释处理器,它使用@autoservice注释来检查注释的字段是否为最终字段。但它没有显示任何编译时错误。这是我的配置 注释: 注释处理器: pom文件: 测试文件:

  • 我喜欢使用Lombok,但它需要在IDEs设置中启用注释处理器。因为开发人员使用不同的IDE,CI/CD有自己的编译流程,而且我真的不想解释初级开发人员为什么需要选中此复选框,我正在寻找一种方法来避免选中此复选框。理想的情况下,我想让一个年轻人来运行git clone,然后/格拉德卢跑。Gradle是否可以完全设置注释处理器(无需手动单击)? 如果它能在比IntelliJ IDEA更多的地方工作,

  • 在添加com.google.dagger:dagger-android-support依赖项后,我得到了这个gradle错误。 这是我的构建的一部分