【问题标题】:FileNotFound Exception while converting Firebase uri into bitmap?将 Firebase uri 转换为位图时出现 FileNotFound 异常?
【发布时间】:2018-08-22 16:13:11
【问题描述】:

我正在开发一个应用程序,我在其中从firebase 检索个人资料图像,但在转换为bitmap 格式时,它正在获取FileNotFoundException 所以有什么解决方案吗?

databaseReference.child(uid).child("Profile_image").addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

        String url= (String) dataSnapshot.getValue();

         Uri uri;
             try {
                 uri = Uri.parse(url);
                 InputStream inputStream =getContentResolver().openInputStream(uri);   //this line
                 Bitmap bitamp = BitmapFactory.decodeStream(inputStream);
                 String bitmap=saveToInternalStorage(bitamp);
                 loadImageFromStorage(bitmap);

            }catch (NullPointerException e){
            } catch (FileNotFoundException e) {
                Toast.makeText(MainActivity.this, "File not Found", Toast.LENGTH_SHORT).show();
            }

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

【问题讨论】:

  • 请添加您的数据库结构。
  • @AlexMamo 感谢您的回复,我正在将 uri 正确地发送到 firebase,所以问题在于 inputStream 到 picasso 中的位图,它工作正常..
  • 你试过用Picasso library for android吗?
  • @AlexMamo 是的,但首先我想将其存储到内部存储器中,为此我想将其更改为位图,这就是问题所在。
  • 你的my_uri的价值是什么?

标签: android android-studio firebase-realtime-database


【解决方案1】:

这是一个评论,但我还没有足够高的声誉来发表评论:

如果您的 String url 是 Firebase 存储的 http url,那么 Uri.parse(url) 不会为您提供正确的 Uri。根据我的经验,只有当字符串来自 Uri 的 toString() 方法时,您才能确信 Uri.parse(String stringUri) 将返回正确的 Uri。

接收无效的 Uri 会导致 getContentResolver().openInputStream(uri) 崩溃,正如你所说的那样。

话虽如此,如果您将 Uri 作为字符串存储在数据库中,那么您需要获取该字符串值并在其上使用 Uri.parse(String stringUri),而不是在 http url 上调用该方法。

【讨论】:

    【解决方案2】:

    我认为你必须直接使用毕加索 Picasso.get().load(uri).into(target);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-26
      • 1970-01-01
      • 1970-01-01
      • 2012-06-28
      • 2017-07-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多