Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在改装中获取onResponse中的错误_Android_Retrofit2 - Fatal编程技术网

Android 在改装中获取onResponse中的错误

Android 在改装中获取onResponse中的错误,android,retrofit2,Android,Retrofit2,我是android世界的新手。我正在尝试为我的学校项目开发一个应用程序,但偶然发现了这个问题。请有人帮帮我。 我的片段代码如下。在这里,我想填写一个表格与图像和上传到PHP,Mysql服务器注册。但应用程序正在崩溃 package com.dgdev.mtmicds; import android.content.Intent; import android.graphics.Bitmap; import android.net.Uri; import android.os.Bundle;

我是android世界的新手。我正在尝试为我的学校项目开发一个应用程序,但偶然发现了这个问题。请有人帮帮我。 我的片段代码如下。在这里,我想填写一个表格与图像和上传到PHP,Mysql服务器注册。但应用程序正在崩溃

package com.dgdev.mtmicds;


import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.provider.MediaStore.Images.Media;
import android.support.v4.app.Fragment;
import android.support.v7.widget.AppCompatButton;
import android.support.v7.widget.AppCompatEditText;
import android.support.v7.widget.AppCompatImageView;
import android.util.Base64;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;


import com.dgdev.mtmicds.DbAccess.Remote.APIClient;
import com.dgdev.mtmicds.DbAccess.Remote.ApiInterface;
import com.dgdev.mtmicds.DbAccess.Remote.UserRegistrationModel;

import java.io.ByteArrayOutputStream;
import java.io.IOException;

import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;

import static android.app.Activity.RESULT_OK;
import static android.provider.MediaStore.Images.Media.*;
import static android.support.v4.content.PermissionChecker.checkSelfPermission;


/**
 * A simple {@link Fragment} subclass.
 */
public class ProfileFragment extends Fragment {
    View view;
    AppCompatImageView imageView;
    AppCompatEditText etFullname, etEmail, etDob, etMobile, etPsw, etRePsw, etAddr;
    AppCompatButton btnRegister, btnCancel;
    private static final int IMAGE_REQUEST = 7777;
    Bitmap bitmap;

    public ProfileFragment() {
        // Required empty public constructor
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        view = inflater.inflate(R.layout.fragment_profile, container, false);

        imageView = (AppCompatImageView) view.findViewById(R.id.ProfileDP);
        etFullname = (AppCompatEditText) view.findViewById(R.id.tvfullanme);
        etEmail = (AppCompatEditText) view.findViewById(R.id.tvemail);
        etDob = (AppCompatEditText) view.findViewById(R.id.tvdob);
        etPsw = (AppCompatEditText) view.findViewById(R.id.tvpsw);
        etRePsw = (AppCompatEditText) view.findViewById(R.id.tvpsw_re);
        etAddr = (AppCompatEditText) view.findViewById(R.id.tvaddr);
        etMobile = (AppCompatEditText) view.findViewById(R.id.tvmobile);

        btnRegister = (AppCompatButton) view.findViewById(R.id.btnRegister);
        btnCancel = (AppCompatButton) view.findViewById(R.id.btnCancel);


        /*-----------------------------------------------------------------------------*/
        /* this onClickListener will be responsible for getting image URI from gallery */
        /*-----------------------------------------------------------------------------*/
        imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                selectImageFromGallery();
            }
        });

        btnRegister.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                uploadData();
            }
        });
        return view;
    }

    private void uploadData() {
        String fullname = etFullname.getText().toString();
        String dob = convertTOMysqlDate(etDob.getText().toString());
        String mobile = etMobile.getText().toString();
        String addr = etAddr.getText().toString();
        String psw = etPsw.getText().toString();
        String prof_pic = imageToString();
        Toast.makeText(view.getContext(), dob, Toast.LENGTH_LONG).show();
        ApiInterface apiInterface = APIClient.GetClient().create(ApiInterface.class);
        Call<UserRegistrationModel> call = apiInterface.RegisterUser(fullname, dob, mobile, addr, psw, prof_pic);
        call.enqueue(new Callback<UserRegistrationModel>() {
            @Override
            public void onResponse(Call<UserRegistrationModel> call, Response<UserRegistrationModel> response) {
                UserRegistrationModel res = response.body();
                Toast.makeText(view.getContext(), res.getStatus(), Toast.LENGTH_LONG).show();
            }
            @Override
            public void onFailure(Call<UserRegistrationModel> call, Throwable t) {
                Toast.makeText(view.getContext(), "You are not able to talk to server!", Toast.LENGTH_LONG).show();
            }
        });
    }

    private String convertTOMysqlDate(String s) {
        String $MysqlDateString;
        String[] DateParts = s.split("/");
        $MysqlDateString = DateParts[2] + "-" + DateParts[1] + "-" + DateParts[0];
        return $MysqlDateString;
    }

    private void selectImageFromGallery() {
        Intent intent = new Intent();
        intent.setType("image/*");
        intent.setAction(Intent.ACTION_GET_CONTENT);
        startActivityForResult(intent, IMAGE_REQUEST);
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == IMAGE_REQUEST && resultCode == RESULT_OK && data != null) {
            Uri path = data.getData();
            try {
                bitmap = getBitmap(getActivity().getApplicationContext().getContentResolver(), path);
                imageView.setImageBitmap(bitmap);
            } catch (IOException e) {
                e.printStackTrace();
            }

        }
    }

    private String imageToString() {
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.JPEG, 40, outputStream);
        byte[] ImageBytes = outputStream.toByteArray();
        return Base64.encodeToString(ImageBytes, Base64.DEFAULT);
    }
}

请帮帮我…我是新手…

您的com.dgdev.mtmicds.DbAccess.Remote.UserRegistrationModel为空。通过进入调试模式检查是否分配了任何值。在调试模式下一步一步地运行代码,并检查它是如何初始化的

提示:在调试器中检查这一行代码:

UserRegistrationModel res = response.body();
试试这个

@Override
        public void onResponse(Call<UserRegistrationModel> call, Response<UserRegistrationModel> response) {
            if(response.isSuccessful()) {
                UserRegistrationModel res = response.body();
                if(res!=null) {
                    Toast.makeText(view.getContext(), res.getStatus(), Toast.LENGTH_LONG).show();
                } else {
                    Toast.makeText(view.getContext(), "Didn't get response", Toast.LENGTH_LONG).show();
                }
            }
        }
@覆盖
公共void onResponse(调用、响应){
if(response.issusccessful()){
UserRegistrationModel res=response.body();
如果(res!=null){
Toast.makeText(view.getContext()、res.getStatus()、Toast.LENGTH_LONG.show();
}否则{
Toast.makeText(view.getContext(),“未得到响应”,Toast.LENGTH_LONG.show();
}
}
}

您可能希望检查您是否收到正确的响应我收到来自服务器的json响应{“status”:“ok”,“answer”:“User Registered!”}请检查状态您是否收到了作为500的响应代码(内部服务器错误)。请在邮递员的帮助下检查。请也把你的模型课放在这里?
@Override
        public void onResponse(Call<UserRegistrationModel> call, Response<UserRegistrationModel> response) {
            if(response.isSuccessful()) {
                UserRegistrationModel res = response.body();
                if(res!=null) {
                    Toast.makeText(view.getContext(), res.getStatus(), Toast.LENGTH_LONG).show();
                } else {
                    Toast.makeText(view.getContext(), "Didn't get response", Toast.LENGTH_LONG).show();
                }
            }
        }