2014-11-28 3 views
1

Как настроить проект Android Studio для работы с Square Dagger? Я получил его в Eclipse, но я абсолютно не знаю, как настроить Android Studio для создания аннотации и генерации кода.Square Dagger: Как настроить Android Studio?

Edit: мой build.gradle:

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

android { 
    compileSdkVersion 21 
    buildToolsVersion "20.0.0" 

    defaultConfig { 
     applicationId "com.test.myapp" 
     minSdkVersion 18 
     targetSdkVersion 21 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      runProguard false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

configurations { 
    apt 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.google.android.gms:play-services:6.1.71' 
    compile 'com.android.support:support-v4:21.0.2' 
    apt "org.androidannotations:androidannotations:3.2" 
    compile "org.androidannotations:androidannotations-api:3.2" 
    apt 'com.squareup.dagger:dagger-compiler:1.2.2' 
    compile 'com.squareup.dagger:dagger:1.2.2' 
    compile 'javax.inject:javax.inject:1' 
} 

def getSourceSetName(variant) { 
    return new File(variant.dirName).getName(); 
} 

android.applicationVariants.all { variant -> 
    def aptOutputDir = project.file("${project.buildDir}/source/apt_generated /${variant.dirName}") 
    def aptOutput = new File(aptOutputDir, variant.dirName) 
    println "****************************" 
    println "variant: ${variant.name}" 
    println "manifest: ${variant.processResources.manifestFile}" 
    println "aptOutput: ${aptOutput}" 
    println "****************************" 

    android.sourceSets[getSourceSetName(variant)].java.srcDirs+= aptOutput.getPath() 

    variant.javaCompile.options.compilerArgs += [ 
      '-processorpath', configurations.apt.getAsPath(), 
      '-AandroidManifestFile=' + variant.processResources.manifestFile, 
      '-s', aptOutput 
    ] 

    variant.javaCompile.source = variant.javaCompile.source.filter { p -> 
     return !p.getPath().startsWith(aptOutputDir.getPath()) 
    } 

    variant.javaCompile.doFirst { 
     aptOutput.mkdirs() 
    } 
} 

ответ

0

Попробуйте следующий меткий плагин - он работает для нас.

 com.jimdo.gradle:gradle-apt-plugin:0.2-SNAPSHOT 

В ваших buildscript репозиториев закрытия добавить

maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } 

и закрытия зависимостей buildscript добавить

classpath 'com.jimdo.gradle:gradle-apt-plugin:0.2-SNAPSHOT' 

Затем в приложении build.gradle

apply plugin: 'apt' 

You» уже получил зависимости от компиляции и apt для кинжала в закрытии зависимостей приложений, поэтому вам должно быть хорошо идти. Я не уверен, для чего подходит зависимость от org.androidannotations:android annotations:3.2. Если вы положите его на поддержку своего аппетитного решения, вы, вероятно, сможете его вытащить.

Смежные вопросы