【问题标题】:ResolveUri failed on bad bitmap Uri after pulling Uri from JSON object从 JSON 对象中提取 Uri 后,ResolveUri 在错误的位图 Uri 上失败
【发布时间】:2015-03-11 13:02:34
【问题描述】:

所以我的应用使用 Firebase 来存储包含头像的用户数据。我让用户从图库中选择一张图片,然后将我的 ImageView 设置为该文件的 Uri,效果很好。

当我推那个 Uri.toString();到 Firebase,然后尝试再次读取它(为了让头像在会话中持续存在),我收到“resolveUri failed on bad bitmap uri”错误。

这是我设置从图库中选择的图像的代码:

public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    super.onActivityResult(requestCode, resultCode, intent);
    if (requestCode == 1 && intent != null && resultCode == Activity.RESULT_OK) {
        Uri uri = intent.getData();
        Firebase usersRef = firebase.child("users").child("dummyUID").child("avatar");
        usersRef.setValue(uri.getPath());
        avatarIV.setImageURI(uri);
    } else {
        Log.d("Status:" , "Photo Picker Cancelled");
    }
}

然后这是我用来尝试从 Firebase 中提取相同的 Image Uri 的代码,但失败了:

avatarRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            Uri uri = Uri.parse(dataSnapshot.getValue().toString());
            avatarIV.setImageURI(uri);
        }

        @Override
        public void onCancelled(FirebaseError firebaseError) {

        }
    });

我已经输入了日志语句来找出路径可能有什么不同,但是在两个位置都是完全相同的。

这是我在清单中拥有的权限:

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MANAGE_DOCUMENTS"/>

我几乎尝试了其他线程中建议的所有修复方法,但均无济于事。当我从 Firebase 读取 Uri 时,我认为这是一个稍微不同的案例场景。

提前致谢, 杰夫

【问题讨论】:

    标签: android json imageview uri firebase


    【解决方案1】:

    Uri.getPath() 不返回完整的 URI,而只返回路径组件。您需要改用Uri.toString()。见https://stackoverflow.com/a/17356461/1532344

    另请注意,此方法不适用于多个设备,因为您从 Intent 获得的 URI 将指向仅在该设备上可用的本地文件。

    【讨论】:

    • 好的,听起来不错。是的,我意识到如果我要能够从其他设备访问它,我需要将该图片/文件上传到某个后端。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-25
    • 1970-01-01
    • 1970-01-01
    • 2020-06-30
    • 1970-01-01
    • 2014-07-16
    • 2012-09-15
    相关资源
    最近更新 更多