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 无法使用Firebase中的Glide库加载配置文件图片_Java_Android_Firebase_Firebase Storage_Android Glide - Fatal编程技术网

Java 无法使用Firebase中的Glide库加载配置文件图片

Java 无法使用Firebase中的Glide库加载配置文件图片,java,android,firebase,firebase-storage,android-glide,Java,Android,Firebase,Firebase Storage,Android Glide,我正在尝试加载firebase中上载的配置文件图片。我正在使用Glide库将图像加载到使用该库的圆形图像视图中 我尝试了两种方法,即使用Firebase UI和使用getDownlodUrl()方法获取uri 我能够成功获得下载URL,但glide给了我一个我无法理解的错误 我试着用谷歌搜索错误,但没用。请帮我看看哪里出了问题 以下是日志: 2019-07-06 19:32:37.149 21919-23194/com.avalonglobalresearch.creatives D/

我正在尝试加载firebase中上载的配置文件图片。我正在使用Glide库将图像加载到使用该库的圆形图像视图中

我尝试了两种方法,即使用Firebase UI和使用getDownlodUrl()方法获取uri

我能够成功获得下载URL,但glide给了我一个我无法理解的错误

我试着用谷歌搜索错误,但没用。请帮我看看哪里出了问题

以下是日志:

2019-07-06 19:32:37.149 21919-23194/com.avalonglobalresearch.creatives      D/skia: --- Failed to create image decoder with message 'unimplemented'
2019-07-06 19:32:37.156 21919-23194/com.avalonglobalresearch.creatives    I/chatty: uid=10160(com.avalonglobalresearch.creatives) glide-source-th identical 6 lines
2019-07-06 19:32:37.157 21919-23194/com.avalonglobalresearch.creatives D/skia: --- Failed to create image decoder with message 'unimplemented'
2019-07-06 19:32:37.186 21919-21919/com.avalonglobalresearch.creatives W/Glide: Load failed for gs://creatives-4ebde.appspot.com/ with size [406x378]
class com.bumptech.glide.load.engine.GlideException: Failed to load resource
There were 4 causes:
java.io.IOException(java.lang.RuntimeException: setDataSource failed: status = 0x80000000)
java.io.IOException(java.lang.RuntimeException: setDataSource failed: status = 0x80000000)
java.io.IOException(java.lang.RuntimeException: setDataSource failed: status = 0x80000000)
java.io.IOException(java.lang.RuntimeException: setDataSource failed: status = 0x80000000)
 call GlideException#logRootCauses(String) for more detail
  Cause (1 of 6): class com.bumptech.glide.load.engine.GlideException: Failed LoadPath{DirectByteBuffer->Object->Drawable}, DATA_DISK_CACHE, com.firebase.ui.storage.images.FirebaseImageLoader$FirebaseStorageKey@bf00ba2
    Cause (1 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{DirectByteBuffer->GifDrawable->Drawable}
    Cause (2 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{DirectByteBuffer->Bitmap->Drawable}
    Cause (3 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{DirectByteBuffer->BitmapDrawable->Drawable}
  Cause (2 of 6): class com.bumptech.glide.load.engine.GlideException: Failed LoadPath{FileInputStream->Object->Drawable}, DATA_DISK_CACHE, com.firebase.ui.storage.images.FirebaseImageLoader$FirebaseStorageKey@bf00ba2
    Cause (1 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{FileInputStream->GifDrawable->Drawable}
    Cause (2 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{FileInputStream->Bitmap->Drawable}
    Cause (3 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{FileInputStream->BitmapDrawable->Drawable}
  Cause (3 of 6): class com.bumptech.glide.load.engine.GlideException: Failed LoadPath{ParcelFileDescriptor->Object->Drawable}, DATA_DISK_CACHE, com.firebase.ui.storage.images.FirebaseImageLoader$FirebaseStorageKey@bf00ba2
There were 2 causes:
java.io.IOException(java.lang.RuntimeException: setDataSource failed: status = 0x80000000)
java.io.IOException(java.lang.RuntimeException: setDataSource failed: status = 0x80000000)
 call GlideException#logRootCauses(String) for more detail
    Cause (1 of 2): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{ParcelFileDescriptor->Bitmap->Drawable}
There was 1 cause:
java.io.IOException(java.lang.RuntimeException: setDataSource failed: status = 0x80000000)
 call GlideException#logRootCauses(String) for more detail
      Cause (1 of 1): class java.io.IOException: java.lang.RuntimeException: setDataSource failed: status = 0x80000000
    Cause (2 of 2): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{ParcelFileDescriptor->BitmapDrawable->Drawable}
There was 1 cause:
java.io.IOException(java.lang.RuntimeException: setDataSource failed: status = 0x80000000)
 call GlideException#logRootCauses(String) for more detail
      Cause (1 of 1): class java.io.IOException: java.lang.RuntimeException: setDataSource failed: status = 0x80000000
  Cause (4 of 6): class com.bumptech.glide.load.engine.GlideException: Failed LoadPath{DirectByteBuffer->Object->Drawable}, REMOTE, com.firebase.ui.storage.images.FirebaseImageLoader$FirebaseStorageKey@bf00ba2
    Cause (1 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{DirectByteBuffer->GifDrawable->Drawable}
    Cause (2 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{DirectByteBuffer->Bitmap->Drawable}
    Cause (3 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{DirectByteBuffer->BitmapDrawable->Drawable}
  Cause (5 of 6): class com.bumptech.glide.load.engine.GlideException: Failed LoadPath{FileInputStream->Object->Drawable}, REMOTE, com.firebase.ui.storage.images.FirebaseImageLoader$FirebaseStorageKey@bf00ba2
 2019-07-06 19:32:37.187 21919-21919/com.avalonglobalresearch.creatives W/Glide:    Cause (1 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{FileInputStream->GifDrawable->Drawable}
    Cause (2 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{FileInputStream->Bitmap->Drawable}
    Cause (3 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{FileInputStream->BitmapDrawable->Drawable}
  Cause (6 of 6): class com.bumptech.glide.load.engine.GlideException: Failed LoadPath{ParcelFileDescriptor->Object->Drawable}, REMOTE, com.firebase.ui.storage.images.FirebaseImageLoader$FirebaseStorageKey@bf00ba2
There were 2 causes:
java.io.IOException(java.lang.RuntimeException: setDataSource failed: status = 0x80000000)
java.io.IOException(java.lang.RuntimeException: setDataSource failed: status = 0x80000000)
 call GlideException#logRootCauses(String) for more detail
    Cause (1 of 2): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{ParcelFileDescriptor->Bitmap->Drawable}
There was 1 cause:
java.io.IOException(java.lang.RuntimeException: setDataSource failed: status = 0x80000000)
 call GlideException#logRootCauses(String) for more detail
      Cause (1 of 1): class java.io.IOException: java.lang.RuntimeException: setDataSource failed: status = 0x80000000
    Cause (2 of 2): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{ParcelFileDescriptor->BitmapDrawable->Drawable}
There was 1 cause:
java.io.IOException(java.lang.RuntimeException: setDataSource failed: status = 0x80000000)
 call GlideException#logRootCauses(String) for more detail
      Cause (1 of 1): class java.io.IOException: java.lang.RuntimeException: setDataSource failed: status = 0x80000000
2019-07-06 19:32:37.190 21919-21919/com.avalonglobalresearch.creatives I/Glide: Root cause (1 of 4)
java.io.IOException: java.lang.RuntimeException: setDataSource failed: status = 0x80000000
这是我的密码:

databaseReference = FirebaseDatabase.getInstance().getReference();
storageReference = FirebaseStorage.getInstance().getReference();

databaseReference.child("users").child(user.getUid()).addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot){
            name2 = (String) dataSnapshot.child("name").getValue();
            bio2 = (String) dataSnapshot.child("bio").getValue();

            //imageUri = (URL) dataSnapshot.child("profilePic").getValue();
            String gender = (String) dataSnapshot.child("gender").getValue();
            String email = (String) dataSnapshot.child("email").getValue();

            Log.d("TAG", "Name: " +name2);
            Log.d("TAG", "Email: " +email);
            Log.d("TAG", "Gender: " +gender);
            Log.d("TAG" , "Profile Pic URI = "+imageUri);
            nameTextView.setText(name2);
            bioTextView.setText(bio2);
            String uid = user.getUid();
            Log.d("TAG" , "UID = " +uid);
            storageReference.child("ProfilePictures").child(uid+".jpg");
            GlideApp.with(getActivity()).load(storageReference).into(test);

            /*storageReference.child("ProfilePictures").child(uid+".jpg").getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
                @Override
                public void onSuccess(Uri uri) {
                    // Got the download URL for 'users/me/profile.png'
                    Log.d("TAG" , "URI = "+uri);

                    GlideApp.with(getActivity()).load(storageReference).into(profilepic);
                    //GlideApp.with(getActivity()).load(storageReference).into(test);
                    //profilepic.setImageURI(uri);
                }
            }).addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception exception) {
                    // Handle any errors
                    Toast.makeText(getActivity(), "Error getting Profile Picture", Toast.LENGTH_LONG).show();
                }
            });*/
        }
databaseReference=FirebaseDatabase.getInstance().getReference();
storageReference=FirebaseStorage.getInstance().getReference();
databaseReference.child(“用户”).child(user.getUid()).addValueEventListener(新的ValueEventListener()){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
name2=(字符串)dataSnapshot.child(“名称”).getValue();
bio2=(字符串)dataSnapshot.child(“bio”).getValue();
//imageUri=(URL)dataSnapshot.child(“profilePic”).getValue();
字符串性别=(字符串)dataSnapshot.child(“性别”).getValue();
字符串email=(字符串)dataSnapshot.child(“email”).getValue();
Log.d(“标签”,“名称:”+name2);
Log.d(“标签”,“电子邮件:”+电子邮件);
日志d(“标签”,“性别:”+性别);
Log.d(“标记”、“配置文件Pic URI=“+imageUri”);
nameTextView.setText(name2);
bioTextView.setText(bio2);
字符串uid=user.getUid();
Log.d(“标记”、“UID=“+UID”);
storageReference.child(“ProfilePictures”).child(uid+”.jpg);
GlideApp.with(getActivity()).load(storageReference).into(test);
/*storageReference.child(“ProfilePictures”).child(uid+“.jpg”).getDownloadUrl().addOnSuccessListener(新OnSuccessListener()){
@凌驾
成功时的公共无效(Uri){
//已获取“users/me/profile.png”的下载URL
Log.d(“标记”、“URI=“+URI”);
GlideApp.with(getActivity()).load(storageReference).into(profilepic);
//GlideApp.with(getActivity()).load(storageReference).into(test);
//profilepic.setImageURI(uri);
}
}).addOnFailureListener(新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常){
//处理任何错误
Toast.makeText(getActivity(),“获取配置文件图片时出错”,Toast.LENGTH_LONG.show();
}
});*/
}
我已经实现了Firebase UI依赖项

注:注释代码是我上面提到的第二种方法。

试试看

 String imageUrl = (String) dataSnapshot.child("profilePic").getValue();

 GlideApp.with(getActivity()).load(imageUrl).into(test);

glide加载的url是
gs://creatives-4ebde.appspot.com/
,似乎无效。在注释代码中,我在日志中得到的URI是
https://firebasestorage.googleapis.com/v0/b/creatives-4ebde.appspot.com/o/ProfilePictures%2F5tI5e4Y2NeOQ7yq8DwefvmYJk713.jpg?alt=media&token=ff02fc6c-32b5-4eb6-8cf3-aca3472b7434de>哪个是正确的uri。添加的错误答案仍然相同。试试看。不需要将其键入
URL