Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.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
Java 我想通过使用Image Croper在Firebase上上传图像,在Emulator上可以正常工作,但在移动设备上不行。安卓工作室_Java_Android_Firebase_Android Studio_File Upload - Fatal编程技术网

Java 我想通过使用Image Croper在Firebase上上传图像,在Emulator上可以正常工作,但在移动设备上不行。安卓工作室

Java 我想通过使用Image Croper在Firebase上上传图像,在Emulator上可以正常工作,但在移动设备上不行。安卓工作室,java,android,firebase,android-studio,file-upload,Java,Android,Firebase,Android Studio,File Upload,当我在手机上选择image时,它会显示gallery图像,但当我从gallery中选择image form时,图像裁剪器不会打开,并在显示Toast消息“出错”后显示白色屏幕,该消息在OnActivityResult函数的else条件中声明。请帮我解决这个问题。 ` ImageView关闭,图像_配置文件; 文本视图保存,电视节目更改; MaterialEdit全名、用户名、简历; FirebaseUser FirebaseUser; 私有Uri-mimageri; 私有存储任务上传任务; St

当我在手机上选择image时,它会显示gallery图像,但当我从gallery中选择image form时,图像裁剪器不会打开,并在显示Toast消息“出错”后显示白色屏幕,该消息在OnActivityResult函数的else条件中声明。请帮我解决这个问题。 `

ImageView关闭,图像_配置文件;
文本视图保存,电视节目更改;
MaterialEdit全名、用户名、简历;
FirebaseUser FirebaseUser;
私有Uri-mimageri;
私有存储任务上传任务;
StorageReference-storageRef;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u edit\u profile);
关闭=findViewById(R.id.close);
image\u profile=findviewbyd(R.id.image\u profile);
save=findviewbyd(R.id.save);
tv_change=findviewbyd(R.id.tv_change);
fullname=findviewbyd(R.id.fullname);
username=findviewbyd(R.id.username);
bio=findViewById(R.id.bio);
firebaseUser=FirebaseAuth.getInstance().getCurrentUser();
storageRef=FirebaseStorage.getInstance().getReference(“上载”);
数据库引用=
FirebaseDatabase.getInstance().getReference(“用户”).child(firebaseUser.getUid());
addValueEventListener(新的ValueEventListener(){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
User=dataSnapshot.getValue(User.class);
setText(user.getFullname());
username.setText(user.getUsername());
bio.setText(user.getBio());
Glide.with(getApplicationContext()).load(user.getImageurl())到(image_profile)中;
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){
}
});
image\u profile.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
CropImage.activity()
.setAspectRatio(1,1)
.setCropShape(CropImageView.CropShape.OVAL)
.start(EditProfileActivity.this);
}
});
}
私有void updateProfile(字符串全名、字符串用户名、字符串bio){
DatabaseReference=FirebaseDatabase.getInstance().getReference().child(“用户”).child(firebaseUser.getUid());
HashMap=newHashMap();
map.put(“全名”,全名);
map.put(“用户名”,用户名);
地图放置(“bio”,bio);
参考。更新儿童(地图);
Toast.makeText(EditProfileActivity.this,“已成功更新!”,Toast.LENGTH_SHORT.show();
}
私有字符串getFileExtension(Uri){
ContentResolver cR=getContentResolver();
MimeTypeMap mime=MimeTypeMap.getSingleton();
返回mime.getExtensionFromMimeType(cR.getType(uri));
}
私有void uploadImage(){
最终ProgressDialog pd=新ProgressDialog(本);
pd.setMessage(“上传”);
pd.show();
if(mimageri!=null){
final-StorageReference fileReference=storageRef.child(System.currentTimeMillis()
+“+getFileExtension(mimageri));
uploadTask=fileReference.putFile(mimageri);
uploadTask.continueWithTask(新的Continuation(){
@凌驾
公共任务(@NonNull Task Task)引发异常{
如果(!task.issusccessful()){
抛出task.getException();
}
返回fileReference.getDownloadUrl();
}
}).addOnCompleteListener(新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
Uri downloadUri=task.getResult();
字符串miUrlOk=downloadUri.toString();
DatabaseReference=FirebaseDatabase.getInstance().getReference(“用户”).child(firebaseUser.getUid());
HashMap map1=新的HashMap();
map1.put(“imageurl”,“miUrlOk”);
参考。更新儿童(map1);
pd.解散();
}否则{
Toast.makeText(EditProfileActivity.this,“失败”,Toast.LENGTH_SHORT.show();
}
}
}).addOnFailureListener(新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常e){
Toast.makeText(EditProfileActivity.this,e.getMessage(),Toast.LENGTH_SHORT).show();
}
});
}否则{
Toast.makeText(EditProfileActivity.this,“未选择图像”,Toast.LENGTH_SHORT.show();
}
}
@凌驾
ActivityResult上的公共void(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
if(requestCode==CropImage.CROP\u IMAGE\u ACTIVITY\u REQUEST\u CODE){
CropImage.ActivityResult结果=CropImage.getActivityResult(数据);
if(resultCode==RESULT\u OK){
mimageri=result.getUri();//在这一行之后,应用程序移动到else条件并显示toast
上传图像();
}
}否则{
Toast.makeText(这是“出错了!”,Toast.LENGTH_SHORT.show();
}
}
} `

ImageView close, image_profile;
TextView save, tv_change;
MaterialEditText fullname, username, bio;
FirebaseUser firebaseUser;

private Uri mImageUri;
private StorageTask uploadTask;
StorageReference storageRef;

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

    close = findViewById(R.id.close);
    image_profile = findViewById(R.id.image_profile);
    save = findViewById(R.id.save);
    tv_change = findViewById(R.id.tv_change);
    fullname = findViewById(R.id.fullname);
    username = findViewById(R.id.username);
    bio = findViewById(R.id.bio);

    firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
    storageRef = FirebaseStorage.getInstance().getReference("uploads");

    DatabaseReference reference = 
   FirebaseDatabase.getInstance().getReference("Users").child(firebaseUser.getUid());
    reference.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            User user = dataSnapshot.getValue(User.class);
            fullname.setText(user.getFullname());
            username.setText(user.getUsername());
            bio.setText(user.getBio());
            Glide.with(getApplicationContext()).load(user.getImageurl()).into(image_profile);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

    image_profile.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            CropImage.activity()
                    .setAspectRatio(1,1)
                    .setCropShape(CropImageView.CropShape.OVAL)
                    .start(EditProfileActivity.this);
        }
    });

}

private void updateProfile(String fullname, String username, String bio){

    DatabaseReference reference = FirebaseDatabase.getInstance().getReference().child("Users").child(firebaseUser.getUid());

    HashMap<String, Object> map = new HashMap<>();
    map.put("fullname", fullname);
    map.put("username", username);
    map.put("bio", bio);

    reference.updateChildren(map);

    Toast.makeText(EditProfileActivity.this, "Successfully updated!", Toast.LENGTH_SHORT).show();
}

private String getFileExtension(Uri uri){
    ContentResolver cR = getContentResolver();
    MimeTypeMap mime = MimeTypeMap.getSingleton();
    return mime.getExtensionFromMimeType(cR.getType(uri));
}


private void uploadImage(){
    final ProgressDialog pd = new ProgressDialog(this);
    pd.setMessage("Uploading");
    pd.show();
    if (mImageUri != null){
        final StorageReference fileReference = storageRef.child(System.currentTimeMillis()
                + "." + getFileExtension(mImageUri));

        uploadTask = fileReference.putFile(mImageUri);
        uploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
            @Override
            public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
                if (!task.isSuccessful()) {
                    throw task.getException();
                }
                return fileReference.getDownloadUrl();
            }
        }).addOnCompleteListener(new OnCompleteListener<Uri>() {
            @Override
            public void onComplete(@NonNull Task<Uri> task) {
                if (task.isSuccessful()) {
                    Uri downloadUri = task.getResult();
                    String miUrlOk = downloadUri.toString();

                    DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Users").child(firebaseUser.getUid());
                    HashMap<String, Object> map1 = new HashMap<>();
                    map1.put("imageurl", ""+miUrlOk);
                    reference.updateChildren(map1);

                    pd.dismiss();

                } else {
                    Toast.makeText(EditProfileActivity.this, "Failed", Toast.LENGTH_SHORT).show();
                }
            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                Toast.makeText(EditProfileActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
            }
        });

    } else {
        Toast.makeText(EditProfileActivity.this, "No image selected", Toast.LENGTH_SHORT).show();
    }
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {

        CropImage.ActivityResult result = CropImage.getActivityResult(data);
        if (resultCode == RESULT_OK) {
            mImageUri = result.getUri(); // after this line App move to else conditon and show toast
            uploadImage();
        }
    } else{
        Toast.makeText(this, "Something gone wrong!", Toast.LENGTH_SHORT).show();
    }
}