Search code examples
androidandroid-apt

Cannot get android-apt working


Twice already I've tried to get android-apt to work, because it's required by the 3rd-party libraries I wanted to use (AndroidAnnotations and PermissionsDispatcher), and both times I bashed my head against the wall until I got tired of hearing the squishing sound.

The problem? Android Studio simply fails to find or fetch the dependencies:

Error:Could not find com.neenbedankt.gradle:plugins:android-apt.
Searched in the following locations:
    file:/Applications/Android Studio.app/Contents/gradle/m2repository/com/neenbedankt/gradle/plugins/android-apt/plugins-android-apt.pom
    file:/Applications/Android Studio.app/Contents/gradle/m2repository/com/neenbedankt/gradle/plugins/android-apt/plugins-android-apt-1.8.jar
    https://jcenter.bintray.com/com/neenbedankt/gradle/plugins/android-apt/plugins-android-apt.pom
    https://jcenter.bintray.com/com/neenbedankt/gradle/plugins/android-apt/plugins-android-apt-1.8.jar
    https://repo1.maven.org/maven2/com/neenbedankt/gradle/plugins/android-apt/plugins-android-apt.pom
    https://repo1.maven.org/maven2/com/neenbedankt/gradle/plugins/android-apt/plugins-android-apt-1.8.jar
Required by:
    :MaterialQuoter:unspecified

I'm probably making some sort of ridiculous mistake (I mean, those libraries would not see any use otherwise, right?), but I can't see what I'm doing wrong.

I'm running Android Studio 1.4, in case it's somehow relevant.

This is the gradle file for the project:

buildscript {
    repositories {
        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.0'
        classpath 'com.neenbedankt.gradle:plugins:android-apt:1.8'
    }
}

allprojects {
    repositories {
        jcenter()
        mavenCentral()
        mavenLocal()
    }
}

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

dependencies {
    compile 'com.github.hotchemi:permissionsdispatcher:1.2.1'
    apt 'com.github.hotchemi:permissionsdispatcher-processor:1.2.1'
}

This is the gradle file for the module I'm mostly working on:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        applicationId "com.callisto.materialquoter"
        multiDexEnabled true
        minSdkVersion 21
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    packagingOptions {
        exclude 'META-INF/license.txt'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/ASL2.0'
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5.1'
    compile 'com.android.support:appcompat-v7:23.0.1'
    compile 'com.android.support:recyclerview-v7:23.0.1'
    compile 'com.android.support:cardview-v7:23.0.1'
    compile 'com.android.support:design:23.0.1'
    compile 'com.google.code.findbugs:jsr305:1.3.9'
    compile 'com.google.android.gms:play-services:8.1.0'
    compile 'com.github.hotchemi:permissionsdispatcher:1.2.1'
    compile 'org.roboguice:roboguice:3.+'
    provided 'org.roboguice:roboblender:3.+'
    compile 'org.codepond:wizardroid:1.3.0'
    compile ('com.octo.android.robospice:robospice:1.4.14') {
        exclude group: 'org.apache.commons', module: 'commons-io'
    }
    compile ('com.octo.android.robospice:robospice-cache:1.4.14') {
        exclude group: 'org.apache.commons', module: 'commons-io'
    }
    compile ('com.octo.android.robospice:robospice-spring-android:1.4.14') {
        exclude group: 'org.apache.commons', module: 'commons-io'
    }
    compile 'org.codehaus.jackson:jackson-mapper-asl:1.9.13'
    compile 'de.greenrobot:greendao:2.0.0'
}

Solution

  • I had the same problem. This helped me to figure it out.

    On the app module itself, add these lines (order is important):

    buildscript {
        repositories {
            mavenCentral()
        }
    
        dependencies {
            classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
        }
    }
    
    apply plugin: 'com.android.application'
    apply plugin: 'android-apt'
    
    
    dependencies {
        compile 'com.github.hotchemi:permissionsdispatcher:1.2.1@aar'
        apt 'com.github.hotchemi:permissionsdispatcher-processor:1.2.1'
    }