Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.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
如何将android.net.Uri转换为";内容:/“;java.net.URI的模式_Java_Android_Uri - Fatal编程技术网

如何将android.net.Uri转换为";内容:/“;java.net.URI的模式

如何将android.net.Uri转换为";内容:/“;java.net.URI的模式,java,android,uri,Java,Android,Uri,如何将具有“content://”方案的android.net.Uri转换为java.net.Uri =>content://media/external/video/media/100767 我正在尝试将android.net.Uri转换为java.net.Uri如下: urijavauri=newuri(myAndroidUri.toString()) 但我得到了这个错误: java.lang.RuntimeException: Failure deliverin

如何将具有“content://”方案的android.net.Uri转换为java.net.Uri =>content://media/external/video/media/100767

我正在尝试将
android.net.Uri
转换为
java.net.Uri
如下:

urijavauri=newuri(myAndroidUri.toString())

但我得到了这个错误:

              java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=2, result=-1, data=Intent { dat=content://media/external/video/media/100767 (has extras) }} to activity {com.example.win.news/com.example.win.news.UploadNewsActivity}: java.lang.IllegalArgumentException: URI is not absolute: content%3A%2F%2Fmedia%2Fexternal%2Fvideo%2Fmedia%2F100767
                  at android.app.ActivityThread.deliverResults(ActivityThread.java:4067)
                  at android.app.ActivityThread.handleSendResult(ActivityThread.java:4110)
                  at android.app.ActivityThread.access$1400(ActivityThread.java:177)
                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1498)
                  at android.os.Handler.dispatchMessage(Handler.java:102)
                  at android.os.Looper.loop(Looper.java:145)
                  at android.app.ActivityThread.main(ActivityThread.java:5951)
                  at java.lang.reflect.Method.invoke(Native Method)
                  at java.lang.reflect.Method.invoke(Method.java:372)
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1388)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1183)
               Caused by: java.lang.IllegalArgumentException: URI is not absolute: content%3A%2F%2Fmedia%2Fexternal%2Fvideo%2Fmedia%2F100767
                  at java.io.File.checkURI(File.java:220)
                  at java.io.File.<init>(File.java:177)
                  at com.example.win.news.UploadNewsActivity.videoToBase64(UploadNewsActivity.java:167)
                  at com.example.win.news.UploadNewsActivity.onActivityResult(UploadNewsActivity.java:129)
                  at android.app.Activity.dispatchActivityResult(Activity.java:6549)
                  at android.app.ActivityThread.deliverResults(ActivityThread.java:4063)
                  at android.app.ActivityThread.handleSendResult(ActivityThread.java:4110) 
                  at android.app.ActivityThread.access$1400(ActivityThread.java:177) 
                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1498) 
                  at android.os.Handler.dispatchMessage(Handler.java:102) 
                  at android.os.Looper.loop(Looper.java:145) 
                  at android.app.ActivityThread.main(ActivityThread.java:5951) 
                  at java.lang.reflect.Method.invoke(Native Method) 
                  at java.lang.reflect.Method.invoke(Method.java:372) 
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1388) 
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1183)
java.lang.RuntimeException:未能传递结果ResultInfo{who=null,request=2,result=-1,data=Intent{dat=content://media/external/video/media/100767 (有额外功能)}}到活动{com.example.win.news/com.example.win.news.UploadNewsActivity}:java.lang.IllegalArgumentException:URI不是绝对的:内容%3A%2F%2Fmedia%2Fexternal%2Fvideo%2Fmedia%2F100767
位于android.app.ActivityThread.deliverResults(ActivityThread.java:4067)
位于android.app.ActivityThread.handleSendResult(ActivityThread.java:4110)
在android.app.ActivityThread.access,售价1400美元(ActivityThread.java:177)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1498)
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:145)
位于android.app.ActivityThread.main(ActivityThread.java:5951)
位于java.lang.reflect.Method.invoke(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:372)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run上(ZygoteInit.java:1388)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1183)
原因:java.lang.IllegalArgumentException:URI不是绝对的:内容%3A%2F%2Fmedia%2Fexternal%2Fvideo%2Fmedia%2F100767
位于java.io.File.checkURI(File.java:220)
在java.io.File.(File.java:177)
在com.example.win.news.UploadNewsActivity.videoToBase64(UploadNewsActivity.java:167)上
位于com.example.win.news.UploadNewsActivity.onActivityResult(UploadNewsActivity.java:129)
位于android.app.Activity.dispatchActivityResult(Activity.java:6549)
位于android.app.ActivityThread.deliverResults(ActivityThread.java:4063)
位于android.app.ActivityThread.handleSendResult(ActivityThread.java:4110)
在android.app.ActivityThread.access,售价1400美元(ActivityThread.java:177)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1498)
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:145)
位于android.app.ActivityThread.main(ActivityThread.java:5951)
位于java.lang.reflect.Method.invoke(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:372)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run上(ZygoteInit.java:1388)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1183)

请帮助..

您打算如何处理
java.net.URI
java.net
类与来自Android的
ContentProvider
无关。实际上,我正在向我的应用程序服务器传递一个视频,为此,我需要将该视频转换为base64字符串,为此,我需要使用File类将视频首先转换为byte[],比如=>File File=new File(java.net.URI);然后=>byte[]byteArray=FileUtils.readFileToByteArray(文件);您不需要
java.net.URI
将数据转换为Base64编码。但您还有其他问题:如果您试图将视频转换为Base64编码的字符串,则会耗尽内存,除非该视频非常小(几秒钟左右,或分辨率非常低)。那么如何解决此问题?正如我所说,我希望将视频发送到服务器