Reputation: 41
I'm using apt plugin com.neenbedankt.android-apt
in an android library project (com.android.library
plugin). However aar that is built doesn't include apt generated files producing java.lang.NoClassDefFoundError
exceptions. Any ideas?
I've been thinking about adding generated directory as a sourceSet
, but i haven't managed to do that.
apply plugin: 'com.android.library'
apply plugin: 'com.neenbedankt.android-apt'
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
}
}
// Idea taken from http://robertomurray.co.uk/blog/2013/gradle-android-inject-version-code-from-command-line-parameter/
def getGeneratedVersionCode = { ->
def appVersionCode = 417
def code = project.hasProperty('versionCode') ? versionCode.toInteger() : appVersionCode
println "VersionCode is set to $code"
return code
}
def getGeneratedVersionName = { ->
def appVersionName = "0.0.1"
def name = project.hasProperty('versionName') ? versionName : appVersionName
println "VersionName is set to $name"
return name
}
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
minSdkVersion 19
targetSdkVersion 22
versionCode getGeneratedVersionCode()
versionName getGeneratedVersionName()
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
// compile fileTree(dir: 'libs', include: ['*.jar'])
// compile 'com.android.support:appcompat-v7:22.2.0'
compile "com.android.support:support-annotations:22.2.0"
compile 'io.reactivex:rxjava:1.0.12'
compile 'io.reactivex:rxandroid:0.24.0'
compile 'com.google.dagger:dagger:2.0'
apt 'com.google.dagger:dagger-compiler:2.0'
provided 'org.glassfish:javax.annotation:10.0-b28'
compile 'com.squareup.retrofit:retrofit:1.6.1'
compile 'com.squareup.okhttp:okhttp:2.2.0'
compile 'com.squareup.okhttp:okhttp-urlconnection:2.2.0'
androidTestCompile 'com.android.support.test:runner:0.3'
androidTestCompile 'com.android.support.test:rules:0.3'
androidTestApt 'com.google.dagger:dagger-compiler:2.0'
}
Upvotes: 4
Views: 670
Reputation: 101
I've resolved this by adding
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
into build.gradle (Project: NameOfYourProject).
full code:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Upvotes: 1