Ошибка регистрации пользователя в базе данных Sql PhpMyAdmin с помощью Retrofit в Android Studio - PullRequest
1 голос
/ 14 марта 2019

У меня ошибка при регистрации пользователя в моей базе данных. Бэкэнд работает, когда я тестирую его с почтальоном, но я не уверен, как получить данные из Android Studio. Ниже приведена ошибка и мой код: Я уже посмотрел ответы, но не смог это исправить.

03-14 16:15:21.976 10199-10199/com.example.dms_finalyearproject     D/AndroidRuntime: Shutting down VM
03-14 16:15:21.977 10199-10199/com.example.dms_finalyearproject E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.dms_finalyearproject, PID: 10199
**java.lang.NullPointerException: Attempt to invoke interface method 'retrofit2.Call** com.example.dms_finalyearproject.API_Interface.Registration(java.lang.String, java.lang.String, java.lang.String)' on a null object reference
    at com.example.dss_yearproject.RegistrationActivity.performRegistration(RegistrationActivity.java:56)
    at com.example.dms_finalyearproject.RegistrationActivity$1.onClick(RegistrationActivity.java:41)
    at android.view.View.performClick(View.java:5198)
    at android.view.View$PerformClick.run(View.java:21147)
    at android.os.Handler.handleCallback(Handler.java:739)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:148)
    at android.app.ActivityThread.main(ActivityThread.java:5417)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

Здесь:

public interface API_Interface {

@GET("includes/register.php")
Call<User> Registration(@Query("name") String name, @Query("email") String email, @Query("password") String password);
}

Здесь я проверяю, успешно ли это:

   public void performRegistration() {



    String user = Username.getText().toString();
    String e_email = Email.getText().toString();
    String pass = Password.getText().toString();

    Call<User> call = MainActivity.api_interface.Registration(user, e_email, pass);

    call.enqueue(new Callback<User>() {
        @Override
        public void onResponse(Call<User> call, Response<User> response) {

            if (response.body().getResponse().equals("ok")) {

                Toast.makeText(getBaseContext(),"Successful", Toast.LENGTH_LONG).show();



            } else if (response.body().getResponse().equals("exists")) {
             // will add here

            } else if (response.body().getResponse().equals("error")) {

                //  will add here 

            }

        }

        @Override
        public void onFailure(Call<User> call, Throwable t) {

        }
    });

    Username.setText("");
    Email.setText("");
    Password.setText("");

}

User.java

public class User {


@SerializedName("response")
private String response;

@SerializedName("name")
private String name;


@SerializedName("email")
private  String email;

@SerializedName("password")
private String password;


public String getResponse() {

    return response;
}



   public String getName() {

    return name;
}

public String getEmail() {

    return email;
}


public String getPassword() {

    return password;
}

}

public class MainActivity extends AppCompatActivity

  public static API_Interface api_interface;
private EditText Username, Email, Password;
private Button registerBtn;
RegistrationActivity registrationActivity;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    api_interface = APIClient.getApiClient().create(API_Interface.class);
...