我最后一次尝试将图像上传到我的服务器,我的代码在我的计算机上从硬盘上传时起作用,但是当我在Android应用程序中使用完全相同的代码时,我遇到了这个错误:< / p>
E/AndroidRuntime(26170): Caused by: java.lang.ExceptionInInitializerError
这是我的代码:
public String uploadFile(File imageFile) {
FormDataMultiPart form = new FormDataMultiPart().field("content", imageFile, MediaType.MULTIPART_FORM_DATA_TYPE)
WebResource webResource = Client.create().resource(serverURL);
ClientResponse response = webResource.type(MediaType.MULTIPART_FORM_DATA).accept(MediaType.APPLICATION_JSON).post(ClientResponse.class, form);
return response.toString();
}
这是在Android设备上遇到错误的方法的第一行。这一个:
FormDataMultiPart form = new FormDataMultiPart().field("content", imageFile, MediaType.MULTIPART_FORM_DATA_TYPE)
唯一的变量是imageFile,当我选择在普通的Java应用程序(而不是Android应用程序)中运行此代码时,上传图像没有任何问题。
我的android清单中有这个权限:
&lt; uses-permission android:name =“android.permission.WRITE_EXTERNAL_STORAGE”/&gt;
另外,在我遇到错误之前,我决定打印出文件中可以获得的所有信息,这一切都是正确的,所以我确定它是正确的文件并且它不是空的。
我正在使用Jersey库来尝试此操作,因为Scribe已知道文件上传存在问题。
有没有人知道为什么我只在Android设备上遇到此错误?
修改
这是错误的堆栈跟踪。第733行是这一行:
FormDataMultiPart form = new FormDataMultiPart().field("content", imageFile, MediaType.MULTIPART_FORM_DATA_TYPE)