Mime
2台のAndroidデバイス間でファイルを転送するために使用しようとしています。sendFile()
(驚くべきことに)要求されたファイルを送信するメソッドがあります。
コードは次のとおりです。
public void sendFile(File f) throws IOException {
BufferedOutputStream out = new BufferedOutputStream(s.getOutputStream());
String filename =
f.getAbsolutePath().substring(f.getAbsolutePath().lastIndexOf("/") + 1);
MultipartEntity multipartContent = new MultipartEntity();
// send the file thorugh inputstream
InputStreamBody isb =
new InputStreamBody(new FileInputStream(f), filename);
multipartContent.addPart("sentFile", isb);
multipartContent.writeTo(out);
out.flush();
out.close();
}
現在、apache-mime4j-0.5.jarファイルとhttpmime-4.0-alpha3.jarファイルを使用して、「MultipartEntity」の使用法をサポートしています。これで、jarは私のandroid(app)プロジェクトの「libs」ファイルにあり、インポートの問題はありません(プロジェクトはコンパイルされます...)。それでも、このランタイムエラーが発生します:
06-17 14:06:29.900: E/AndroidRuntime(22251): FATAL EXCEPTION: Thread-11
06-17 14:06:29.900: E/AndroidRuntime(22251): java.lang.NoSuchMethodError: org.apache.james.mime4j.message.Multipart.<init>
06-17 14:06:29.900: E/AndroidRuntime(22251): at org.apache.http.entity.mime.HttpMultipart.<init> (HttpMultipart.java:64)
06-17 14:06:29.900: E/AndroidRuntime(22251): at org.apache.http.entity.mime.MultipartEntity.<init>(MultipartEntity.java:76)
06-17 14:06:29.900: E/AndroidRuntime(22251): at org.apache.http.entity.mime.MultipartEntity.<init>(MultipartEntity.java:99)
06-17 14:06:29.900: E/AndroidRuntime(22251): at com.cdp.controller.Connection.sendFile(Connection.java:71)
06-17 14:06:29.900: E/AndroidRuntime(22251): at com.cdp.controller.Controller.handleRequest(Controller.java:41)
06-17 14:06:29.900: E/AndroidRuntime(22251): at com.cdp.service.ServerService$SenderThread.run(ServerService.java:109)
この問題の原因は何でしょうか?どうすれば解決できますか?MultipartEntity()
コードに示されているように、新しいオブジェクトをインスタンス化しようとすると、アプリがクラッシュします。私は多くの投稿を通過しましたが、何も試していません。よろしくお願いします!
ありがとう。