Andoridのコードを書いてます。
Apache HttpComponentsのライブラリを導入し、MultiPartEntityBuilderを使っているのですが、途中で落ちてしまいます。
以下のコードを実行すると、MultipartEntityBuilder#build()でNoSuchFieldErrorを吐きます。
そもそもNoSuchFieldErrorというもの自体初めて見たので意味も分からず困っています。
検索したところ「ライブラリの問題だから4.3(旧バージョン)に戻せ」というようなことが書いてあり、古いバージョンのライブラリに差し替えたところエラーは出なくなったのですが、本当にライブラリの問題なのでしょうか。何か間違っているところがあれば教えてほしいです。
日本語での情報はこれしか見つけられませんでした。
(MultipartEntityBuilder)でNoSuchFieldError
Java
1//URIからInputStreamを作成 2InputStream is= getContentResolver().openInputStream(imageUri); 3byte[] inputData = getBytes(is); 4 5//エンティティの作成 6MultipartEntityBuilder builder = MultipartEntityBuilder.create(); 7builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); 8builder.setCharset(Charset.forName("UTF-8")); 9builder.addBinaryBody("upfile", inputData, ContentType.create("image/png"), "test.png"); 10 11//HttpPostにセット 12HttpPost post = new HttpPost(DOMAIN + "/main.php"); 13HttpEntity entity = builder.build();//ここでNoSuchFieldError 14post.setEntity(entity); 15
java.lang.NoSuchFieldError: org.apache.http.message.BasicHeaderValueFormatter.INSTANCE at org.apache.http.entity.ContentType.toString(ContentType.java:153) at org.apache.http.entity.mime.MultipartFormEntity.<init>(MultipartFormEntity.java:53) at org.apache.http.entity.mime.MultipartEntityBuilder.buildEntity(MultipartEntityBuilder.java:236) at org.apache.http.entity.mime.MultipartEntityBuilder.build(MultipartEntityBuilder.java:240) at com.satken.test.UploadActivity$Upload.run(UploadActivity.java:363)←ここが上のコードです。 at java.lang.Thread.run(Thread.java:841)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/16 07:24
退会済みユーザー
2015/12/16 19:19