Android Studio 3.0错误:android-apt不兼容

时间:2017-11-22 19:04:18

标签: android android-studio gradle realm-java android-apt

我是Android开发的新手,并获得了一个遗留项目。所以我安装了最新版本的Android Studio并打开它。

当我尝试构建它时,我收到此错误:

'https://api.rest.com/v1/users/' + userId + '/resource/' + resourceId ? resourceId : ''

我尝试了这些thread中显示的解决方案,但它没有用。

我的grandle构建脚本没有任何android-apt参考。

许多编译包显示为过时。但是,当我按照Android的工作室建议更新参考时,我会收到错误,说明找不到包裹。

正如我所说,我是Android Studio World的新手,所以我对这些东西感到有点迷失。

这是我的build.gradle(模块:app):

Error:android-apt plugin is incompatible with the Android Gradle plugin.  Please use 'annotationProcessor' configuration instead.

这是我的build.gradle(Project:MyApp):

apply plugin: 'com.android.application'
apply plugin: 'me.tatarka.retrolambda'
apply plugin: 'realm-android'

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.2"


    defaultConfig {
        applicationId "xxxxxxxxxxxx"
        minSdkVersion 19
        targetSdkVersion 24
        versionCode 123
        versionName "1.2.3"
        manifestPlaceholders = [HOCKEYAPP_APP_ID: "xxxxxxxxxxxxxxxxxxxxx"]

        //For Test
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

    }

    packagingOptions {
        exclude 'META-INF/services/javax.annotation.processing.Processor'
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile('com.mikepenz:materialdrawer:4.6.4@aar') {
        transitive = true
    }

    //For Test
    androidTestCompile 'com.android.support:support-annotations:24.2.1'
    //noinspection GradleCompatible
    androidTestCompile 'com.android.support.test:runner:0.5'
    androidTestCompile 'com.android.support.test:rules:0.5'
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'

    compile 'com.android.support:appcompat-v7:24.2.1'
    compile 'com.android.support:design:24.2.1'
    compile 'com.android.support:cardview-v7:24.2.1'
    compile 'com.android.support:recyclerview-v7:24.2.1'
    compile 'com.android.support:support-v4:24.2.1'
    compile 'com.android.support:support-v13:24.2.1'
    compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4'
    compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4'
    compile 'com.squareup.okhttp3:okhttp:3.1.2'

    compile 'com.jakewharton:butterknife:7.0.1'

    compile 'com.p_v:flexiblecalendar:1.1.4'
    compile 'br.com.zbra:android-linq:1.0.1'

    compile 'com.google.android.gms:play-services-maps:9.4.0'

    compile 'com.github.PhilJay:MPAndroidChart:v2.1.6'
    compile 'com.cardiomood.android:android-widgets:0.1.1'
    compile 'com.github.thorbenprimke:realm-recyclerview:0.9.14'

    compile 'net.hockeyapp.android:HockeySDK:4.0.0'
}

1 个答案:

答案 0 :(得分:9)

  

不再支持第三方android-apt插件。您应该切换到内置注释处理器支持,该支持已经过改进,可以懒惰地处理解析依赖关系。

     

使用Android插件3.0.0时,必须使用annotationProcessor依赖关系配置将注释处理器添加到处理器类路径,如下所示:

dependencies {
    ...
    annotationProcessor 'com.google.dagger:dagger-compiler:<version-number>'
}

请在https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html

阅读Android Gradle Plugin 3.0.0的完整迁移指南

不再需要Retrolambda。新的Android Gradle插件支持Java 8语言功能。 Read more here.

假设您遵循迁移指南,则错误是由旧Realm插件引起的。

Realm插件管理幕后的所有Realm依赖项。这也意味着它的旧版本不支持新工具。

Realm 2.2.0中首次支持

annotationProcessor配置,如changelog所示:

  

增强

     
      
  • 添加了对Android Gradle Plugin 2.2.0或更高版本提供的annotationProcessor配置的支持。 Realm插件将其注释处理器添加到annotationProcessor配置而不是apt配置(如果可用)并且未使用com.neenbedankt.android-apt插件。在Kotlin项目中,使用kapt代替annotationProcessor配置(#3026)。
  •   

实际上你有两个选择:

  • 将您的Realm更新为至少2.2.0或
  • 返回Android Gradle Plugin 2.3.3。