как включить аннотацию процессора в андроид студии 3.1.2 - PullRequest
0 голосов
/ 04 июня 2018

Я использую библиотеку dagger 2 для своего приложения для Android, но она не генерирует класс Daggercomponent для, поэтому я прочитал, что мне нужно включить процессор аннотаций, но я не могу найти его в Android Studio 3.1.2, его нет в настройках iтакже добавил этот код в Gradle, и это не помогло

javaCompileOptions{
        annotationProcessorOptions {
            includeCompileClasspath true
        }
    }

, пожалуйста, обратите внимание, что я говорю о версии 3.1.2. В предыдущей версии процессор аннотаций находится в меню, но я не могу найти его в этомверсия

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 26
defaultConfig {
    applicationId "com.example.moein.volley_download_kotlin"
    minSdkVersion 21
    targetSdkVersion 26
    versionCode 1
    versionName "1.0"
    multiDexEnabled true
    testInstrumentationRunner     "android.support.test.runner.AndroidJUnitRunner"
    javaCompileOptions{
        annotationProcessorOptions {
            includeCompileClasspath true
        }
    }
 }
 buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'),     'proguard-rules.pro'
    }
}
}

dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-             core:3.0.2'

implementation 'com.tonyodev.fetch2downloaders:fetch2downloaders:2.0.0-RC21'
implementation 'com.android.volley:volley:1.1.0'

implementation 'com.google.dagger:dagger:2.13'
annotationProcessor 'com.google.dagger:dagger-compiler:2.13'
annotationProcessor 'com.google.dagger:dagger-android-processor:2.13'
}

(мой код реализации кинжала на github не хотел переписывать здесь: https://github.com/codepath/android_guides/issues/331)

1 Ответ

0 голосов
/ 04 июня 2018

Если вы используете kotlin в своем проекте, вам нужно использовать процессор аннотаций kotlin.Добавьте его в начало вашего файла Gradle:

apply plugin: 'kotlin-kapt'

и вместо annotationProcessor используйте kapt:

kapt 'com.google.dagger:dagger-compiler:2.13'
kapt 'com.google.dagger:dagger-android-processor:2.13'

Я проверял ваши настройки кинжала, и этот модуль кажетсячтобы быть немного не в себе:

@Module
  class globals {

  lateinit var volleyinstance:VolleyController
  fun golobals(volley:VolleyController){
    volleyinstance=volley

 }

@Provides
@Singleton
fun provideVolley():VolleyController{
    return volleyinstance
 }

}

Я не вижу, чтобы ваш volleyController создавался в каком-либо другом модуле.Может быть, вы хотели сделать что-то вроде:

@Module
  class globals {

@Provides
@Singleton
fun provideVolley():VolleyController{
    return VolleyController()
 }

 }
...