0

I'm developing an app in Android Studio. It connects to AWS AppSync, using Amplify. I followed this guide. When I use my schema, the AppSync response contains null data.

package com.example.myappversionfinal2;    

import androidx.appcompat.app.AppCompatActivity;    
import android.os.Bundle;
import android.util.Log;    

import com.amazonaws.mobile.client.AWSMobileClient;
import com.amazonaws.mobile.client.Callback;
import com.amazonaws.mobile.client.UserStateDetails;

import com.amplifyframework.api.aws.AWSApiPlugin;
import com.amplifyframework.api.graphql.GraphQLResponse;
import com.amplifyframework.api.graphql.MutationType;
import com.amplifyframework.core.Amplify;
import com.amplifyframework.core.ResultListener;
import com.amplifyframework.datastore.generated.model.Projectslist;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        AWSMobileClient.getInstance().initialize(getApplicationContext(), new Callback<UserStateDetails>() {
            @Override
            public void onResult(UserStateDetails userStateDetails) {
                try {
                    Amplify.addPlugin(new AWSApiPlugin());
                    Amplify.configure(getApplicationContext());
                    Log.i("ApiQuickstart", "All set and ready to go!");
                    createProject();
                } catch (Exception e) {
                    Log.e("ApiQuickstart", e.getMessage());
                }
            }

            @Override
            public void onError(Exception e) {
                Log.e("ApiQuickstart", "Initialization error.", e);
            }
        });
    }

    private void createProject() {
        Projectslist blog = Projectslist.builder()
            .projId("hiewf")
            .projName("qwerty")
            .build();

        Amplify.API.mutate(
            blog,
            MutationType.CREATE,
            new ResultListener<GraphQLResponse<Projectslist>>() {
                @Override
                public void onResult(GraphQLResponse<Projectslist> response) {
                    Log.i("ApiQuickStart", "Added Blog with id: " + response.getData());
                }

                @Override
                public void onError(Throwable throwable) {
                    Log.e("ApiQuickStart", throwable.getMessage());
                }
            }
        );
    }
}

It's very simple code. But in the example in the documentation, the response contains an ID for the blog entry created in DynamoDB.

03-16 15:52:31.574 15694-15751/com.example.mincivilappversionfinal2 I/ApiQuickstart: All set and ready to go!
03-16 15:52:31.654 15694-15782/com.example.mincivilappversionfinal2 D/libc-netbsd: [getaddrinfo]: hostname=xxxxx; servname=(null); cache_mode=(null), netid=0; mark=0
03-16 15:52:31.654 15694-15782/com.example.mincivilappversionfinal2 D/libc-netbsd: [getaddrinfo]: ai_addrlen=0; ai_canonname=xxxxx; ai_flags=4; ai_family=0
03-16 15:52:31.664 15694-15782/com.example.mincivilappversionfinal2 D/libc-netbsd: [getaddrinfo]: hostname=xxxxx; servname=(null); cache_mode=(null), netid=0; mark=0
03-16 15:52:31.664 15694-15782/com.example.mincivilappversionfinal2 D/libc-netbsd: [getaddrinfo]: ai_addrlen=0; ai_canonname=xxxxx; ai_flags=1024; ai_family=0
03-16 15:52:31.884 15694-15782/com.example.mincivilappversionfinal2 I/System.out: propertyValue:false
03-16 15:52:32.004 15694-15709/com.example.mincivilappversionfinal2 I/art: CheckpointMarkThreadRoots callback created = 0xb849b158
03-16 15:52:32.024 15694-15709/com.example.mincivilappversionfinal2 I/art: CheckpointMarkThreadRoots callback created = 0xb84bec18
03-16 15:52:32.674 15694-15782/com.example.mincivilappversionfinal2 I/ApiQuickStart: Added Blog with id: null

Any idea what's the problem? I need help!

Jameson
  • 6,400
  • 6
  • 32
  • 53
Nicolas Parra
  • 43
  • 1
  • 10
  • Check the `response.hasErrors()` and `response.getErrors()`. My guess is that you don't have response data, because you have errors present in the response, instead. Also, please be sure to use the latest release. – Jameson Jun 08 '20 at 01:21
  • 1
    Thanks for correct my ask, I followed [this guide](https://aws.amazon.com/es/blogs/mobile/building-an-android-app-with-aws-amplify-part-1/) and [this documentation](https://docs.amplify.aws/lib/storage/getting-started/q/platform/android) to resolve my problem. – Nicolas Parra Jun 08 '20 at 20:12

0 Answers0