ApolloGraphql FileNotFoundException: источник /apollo/generateIR/debug/src (является каталогом)

Я пытаюсь добавить ApolloGraphql в свой проект Android, но когда я пытаюсь перестроить проект, я получаю:

org.gradle.api.UncheckedIOException: java.io.FileNotFoundException: /Users/mcebotari/Downloads/Projects/Barcloud/app/build/generated/source/apollo/generatedIR/snapshotDebug/src (Is a directory)

В build.gradle я добавил необходимые зависимости:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'

apply plugin: 'com.apollographql.android'


android {
  compileSdkVersion 27
  defaultConfig {
    applicationId "barcloud.com"
    minSdkVersion 21
    targetSdkVersion 27
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
  }
  buildTypes {
    release {
      minifyEnabled false
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
  }
}

dependencies {
  implementation fileTree(dir: 'libs', include: ['*.jar'])
  implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
  implementation 'com.android.support:appcompat-v7:27.1.1'
  implementation 'com.android.support:design:27.1.1'

  //Design
  implementation 'com.github.rasoulmiri:buttonloading:v1.0.8'

  //Vision Library
  implementation 'com.google.android.gms:play-services-vision:15.0.2'

  // RxJava
  implementation "io.reactivex.rxjava2:rxjava:2.1.16"
  implementation "io.reactivex:rxandroid:1.2.1"
  implementation "com.jakewharton.rxbinding:rxbinding:1.0.1"
  implementation "com.squareup.retrofit2:adapter-rxjava:2.3.0"
  implementation 'com.jakewharton.rxbinding:rxbinding-appcompat-v7:1.0.1'

  //RxPermissions
  implementation 'com.tbruyelle.rxpermissions2:rxpermissions:0.9.5@aar'

  //Retrofit
  implementation "com.squareup.retrofit2:retrofit:2.4.0"
  implementation "com.squareup.retrofit2:adapter-rxjava2:2.4.0"
  implementation "com.squareup.retrofit2:converter-gson:2.4.0"

  // rxandroid
  implementation "io.reactivex.rxjava2:rxandroid:2.0.1"

  // Dagger
  implementation "com.google.dagger:dagger:2.12"
  kapt "com.google.dagger:dagger-compiler:2.12"

  //GraphQL
  implementation 'com.apollographql.apollo:apollo-runtime:1.0.0-alpha'
  implementation 'com.apollographql.apollo:apollo-rx2-support:1.0.0-alpha'

  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'
}

а также зависимость:

classpath 'com.apollographql.apollo:apollo-gradle-plugin:1.0.0-alpha'

Пытаясь восстановить проект, я получаю:

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:generateDebugApolloClasses'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100)
...
Caused by: org.gradle.api.UncheckedIOException: java.io.FileNotFoundException: /Users/mcebotari/Downloads/samples/Barcloud/app/build/generated/source/apollo/generatedIR/debug/src (Is a directory)
    at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:57)
...
Caused by: java.io.FileNotFoundException: /Users/mcebotari/Downloads/samples/Barcloud/app/build/generated/source/apollo/generatedIR/debug/src (Is a directory)
    at java.io.FileInputStream.open0(Native Method)

Файлы graphql - это файлы из официального примера - GithuntFeedQuery.graphql и их schema.json, вставленные в основную папку.

Есть идеи?

2 ответа

Была та же проблема с конфигурацией prodRelease, исправленная переименованием вкуса prod. В приложениях build.gradle у меня есть:

buildTypes { 
  debug {...}
  release {...}
}
productFlavors {
  dev {...}
  stage {...}
  prod {...}
}

который дает мне 6 вариантов сборки

devDebug
devRelease
stageDebug
stageRelease
prodDebug
prodRelease

топ-5 создавались без проблем локально и на CI, в то время как prodRelease выдавал мне ту же ошибку, что и вы, без логического объяснения Файлы GraphQL одинаковы для dev, stage и prod... Я пытался создать специальные папки для "prod", а затем для "prodRelease", проверил их права доступа - все равно для всех вариантов, ничего не помогло. И prodDebug строили правильно все время. Затем я переименовал prod flavour(не забудьте переименовать папку графических файлов соответственно), и теперь он работает как шарм.

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

  1. Удалить Аполлона из вашего проекта, (by editing your gradle files) очистите ваш проект и снова добавьте apollo.

  2. Попробуйте изменить версию apollo в файле проекта gradle, т.е. мой работал с

classpath 'com.apollographql.apollo:gradle-plugin:0.3.1

и это было 0.3.2 первоначально.

Другие вопросы по тегам