3

Does anybody know how to use Android Annotations with the jack compiler ?

Here my app/build.gradle and here my project build.gradle

With this configuration, I have this error message when I build my project :

Error:Could not get unknown property 'classpath' for task ':app:transformJackWithJackForDebug' of type com.android.build.gradle.internal.pipeline.TransformTask.
François Legrand
  • 1,151
  • 1
  • 14
  • 25

1 Answers1

6

You should remove the android-apt plugin and the apt block completely, because it does not work with Jack annotation processing. Also, you have to declare processsors in the annotationProcessor configuration. Lastly, you have to add the annotation processing parameters to jack (which has no public API per-variant, yet).

Here is your modified build.gradle:

repositories {
    jcenter()
    mavenCentral()
}


apply plugin: 'com.android.application'

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.2"
    defaultConfig {
        applicationId "com.frlgrd.streamzone"
        minSdkVersion 21
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        jackOptions {
            enabled true
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

// Android Annotations
def AAVersion = '4.0.0'

dependencies {

    // Google
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:24.2.1'
    compile 'com.android.support:design:24.2.1'

    // Android Annotations
    annotationProcessor "org.androidannotations:androidannotations:$AAVersion"
    compile "org.androidannotations:androidannotations-api:$AAVersion"

    // RX
    compile 'com.tbruyelle.rxpermissions:rxpermissions:0.7.1@aar'
    compile 'io.reactivex:rxandroid:1.2.1'
    compile 'io.reactivex:rxjava:1.1.6'
}

// add annotation processing options to jack
android.applicationVariants.all { variant ->
    variant.variantData.variantConfiguration.javaCompileOptions.annotationProcessorOptions
            .arguments = ['androidManifestFile': variant.outputs[0]?.processResources?.manifestFile?.absolutePath]
}
WonderCsabo
  • 11,947
  • 13
  • 63
  • 105
  • Not worked for me (`compileSdkVersion 25`, `buildToolsVersion '25.0.2'`, `targetSdkVersion 23`, `AAVersion = '4.2.0'`) – fikr4n Feb 23 '17 at 04:22
  • 1
    @WonderCsabo the compiler tells class `SomeClass_` not found which means AA's annotation processor is not processed so the generated class not found. – fikr4n Feb 24 '17 at 00:28
  • Can you open a new question with your problem? – WonderCsabo Feb 24 '17 at 06:56