I'm trying to connect Android app with GraphQL using Apollo code generation. I'm getting this type of error:
ERROR: Value 'main GraphQL source' specified for property '$1' cannot be converted to a file.
I made lot of tutorials on medium, used github instructions but none of them didn't help me. To generate schema.json I used apollo and also deprecated apollo-codegen.
Project-level gradle dependecies:
dependencies {
classpath 'com.android.tools.build:gradle:3.4.0'
classpath 'com.apollographql.apollo:gradle-plugin:0.4.1'
}
On app-gradle I added one line:
apply plugin: 'com.apollographql.android'
I also created a folder 'graphql' in my main folder, and I put getPosts.graphql file:
query allPostsQuery{
findAllUsers{
username
email
}
}
Then I'm generated schema.json using (a part with my query):
{
"kind": "OBJECT",
"name": "Query",
"description": "",
"fields": [
{
"name": "findAllUsers",
"description": "",
"args": [],
"type": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "LIST",
"name": null,
"ofType": {
"kind": "OBJECT",
"name": "User",
"ofType": null
}
}
},
"isDeprecated": false,
"deprecationReason": null
},
{
"name": "findUser",
"description": "",
"args": [
{
"name": "username",
"description": "",
"type": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "SCALAR",
"name": "String",
"ofType": null
}
},
"defaultValue": null
}
],
"type": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "OBJECT",
"name": "User",
"ofType": null
}
},
"isDeprecated": false,
"deprecationReason": null
}
],
"inputFields": null,
"interfaces": [],
"enumValues": null,
"possibleTypes": null
},
Schema-generation:
apollo-codegen introspect-schema http://localhost:1100/graphql --output schema.json
On GraphQL errorsThe onError link can retry a failed operation based on the type of GraphQL error that's returned. For example, when using token-based authentication, you might want to automatically handle re-authentication when the token expires.
I tried what Sneha suggested, that's working fine for me.
If you don't want to downgrade Android Gradle plugin
and Gradle
version you can change
classpath 'com.apollographql.apollo:gradle-plugin:0.4.1'
to
classpath 'com.apollographql.apollo:apollo-gradle-plugin:1.0.0'
in your project level build.gradle
file.
Also please update apollo-runtime
and apollo android support library
to latest version in your build.gradle
file of app module.
implementation 'com.apollographql.apollo:apollo-runtime:1.0.0'
implementation "com.apollographql.apollo:apollo-android-support:1.0.0"
Hopefully this will resolve your issue, let me know if you've any issue further.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With