好了,我终于把问题归结到这个方法上了。
我有一个名为file的File对象,当我执行toString()时,它输出以下内容
/storage/emulated/0/Pictures/ecohelp/IMG_ecohelp_20131016_214242.jpg现在,在将File对象插入到以下方法中之后
Uri uriFile = Uri.fromFile(file);当我执行uriFile.toString()时,它输出以下内容
file:///storage/emulated/0/Pictures/ecohelp/IMG_ecohelp_20131016_214242.jpg现在我试着去掉"/storage...“开头的/但是它仍然不能工作,有人知道为什么会这样吗?与其他文件一样,它应该是file://,但它会放入其中的三个文件。
我试着为图片模仿这个:http://developer.android.com/guide/topics/media/camera.html#saving-media
尝试保存文件时出现以下错误:
10-16 22:16:39.945: E/AndroidRuntime(32080): java.lang.RuntimeException:
Failure delivering result ResultInfo{who=android:fragment:2, request=100,
result=-1, data=null} to activity
{com.example.ecohelp/com.example.ecohelp.MainActivity}: java.lang.NullPointerException发布于 2013-10-17 04:20:39
这被认为是正确的行为,因为URI由以下元素组成:
file://
/storage/emulated/0/Pictures/ecohelp/IMG_ecohelp_20131016_214242.jpg
所有文件URI通常都有3个斜杠,其中两个表示方案,一个表示路径应从文件系统(/)的根目录开始。
发布于 2013-10-17 04:21:38
我不认为这是因为file://.后面有额外的/字符实际上,API提到了一个示例,其中包含了files:/。
http://developer.android.com/reference/android/net/Uri.html#fromFile(java.io.File)
根据错误消息,似乎您没有正确地将数据传递到MainActivity。也许我们可以看到更多的代码?
发布于 2013-10-17 04:25:28
实际上,您收到的字符串是正确的URI。
简而言之,URI语法是这样的:
(方案)://(路径)
其中path可能包含更多的子字段(有关这些子字段的更完整的讨论,请查看http://en.wikipedia.org/wiki/URI_scheme#Generic_syntax )。
现在,对于“文件”方案,路径是相对本地路径还是绝对本地路径。在基于Unix的系统上,绝对路径将以斜杠开头。
所以你的字符串是完全正确的:
file:///storage/emulated/0/Pictures/ecohelp/IMG_ecohelp_20131016_214242.jpg
表示方案是" File ",路径是绝对本地文件:"/storage/emulated/0/Pictures/ecohelp/IMG_ecohelp_20131016_214242.jpg",,这是您放弃的File对象的正确位置。
至于您的NullPointerException,我不认为它与URI或文件相关。我对安卓开发了解不多,但我相信你应该有一个onActivityResult方法。会不会是你在某个变量上调用了一个方法,而没有先检查空值呢?
https://stackoverflow.com/questions/19412791
复制相似问题