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(не забудьте переименовать папку графических файлов соответственно), и теперь он работает как шарм.
Есть два решения, с которыми я столкнулся при исследовании этой проблемы:
Удалить Аполлона из вашего проекта,
(by editing your gradle files)
очистите ваш проект и снова добавьте apollo.Попробуйте изменить версию apollo в файле проекта gradle, т.е. мой работал с
classpath 'com.apollographql.apollo:gradle-plugin:0.3.1
и это было 0.3.2
первоначально.