Reputation: 89
Android Studio 2.3.3
My project bulid.gradle:
// 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()
}
My app build.gradle.
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'
}
And project bulid and run success. So now I want to add Realm. I add in build.gradle
apply plugin: 'realm-android'
And as result I get error.
Error:Annotation processor '__gen.AnnotationProcessorWrapper_stage_io_realm_processor_RealmProcessor' not found Error:Execution failed for task ':app:compileStageJavaWithJavac'.
Compilation failed; see the compiler error output for details. :app:compileDevJavaWithJavac Destination for generated sources was modified by kapt. Previous value = myProject\app\build\generated\source\apt\dev error: Annotation processor '__gen.AnnotationProcessorWrapper_dev_io_realm_processor_RealmProcessor' not found
Upvotes: 1
Views: 2760
Reputation: 89
I found solution. Two approach:
in app's 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"
}
OR
By kapt plugin
apply plugin: 'kotlin-kapt'
kapt {
arguments {
arg( "resourcePackageName", android.defaultConfig.applicationId)
arg( "androidManifestFile",
variant.outputs[0]?.processResourcesTask?.manifestFile)
}
}
dependencies {
kapt 'io.realm:realm-android-library:3.5.0'
kapt "org.androidannotations:androidannotations:$AAVersion"
}
Upvotes: 1
Reputation: 81539
If you use Kotlin, then you'll need to use KAPT.
annotationProcessor "org.androidannotations:androidannotations:$AAVersion"
should be
kapt "org.androidannotations:androidannotations:$AAVersion"
and
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'io.fabric'
apply plugin: 'realm-android'
should be
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'io.fabric'
apply plugin: 'realm-android'
and
// javaCompileOptions {
// annotationProcessorOptions {
// arguments = ["resourcePackageName": android.defaultConfig.applicationId]
// }
// }
kapt {
arguments {
arg('resourcePackageName', android.defaultConfig.applicationId)
}
}
EDIT: based on https://stackoverflow.com/a/34708575/2413303
kapt {
arguments {
arg('androidManifestFile', variant.outputs[0]?.processResources?.manifestFile)
arg('resourcePackageName', android.defaultConfig.applicationId)
}
}
If that still doesn't work, then the question becomes AndroidAnnotations related.
Upvotes: 0