エラー: パッケージorg.apache.http.clientは存在しません への対策
Android Studioでの開発
Apache http clientを使いたい
Apache http clientを使用してappを開発していましたが、急にエラーが発生してしまいました。具体的には
エラー: パッケージorg.apache.http.impl.cookieは存在しません
エラー: パッケージorg.apache.http.clientは存在しません
Error:Execution failed for task ':AppName:compileReleaseJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
エラー: パッケージorg.apache.http.clientは存在しません
Error:Execution failed for task ':AppName:compileReleaseJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
import org.apache.http.client.ClientProtocolException;の部分から失敗してエラーが出てしまいました。
import org.apache.http.client.*;関連で全てエラーが発生するのでなんとか直すことに決めました。
調べたところ、Android 2.3(API レベル 9)以上ではApache http clientが削除されてしまっており、どうやらそのまま使用できないようになっているようです。
修正したコード
build.gradle
/*app直下のbuild.gradle*/ apply plugin: 'com.android.application' android { signingConfigs { config { keyAlias 'alias' keyPassword 'password' storeFile file('~~/Directory/keystore/release.jks') storePassword 'password' } } compileSdkVersion 24 buildToolsVersion '24.0.0' /*useLibrary、のこれを追加する*/ useLibrary 'org.apache.http.legacy' /*その他の設定*/ dependencies { /*こちらを追加でも可能*/ compile files('libs/org.apache.http.legacy.jar') }
解決策:compile filesの追加
自分がやった方法はこれです。libs内にorg.apache.http.legacy.jarを追加してそれをcompileしています。なぜかlibraryに入っていなかったので.jarファイルを探してlibsに追加しました。
これでも正常に動きます。
解決策:useLibraryの設定
一番無難な方法。app直下のbuild.gradleを編集して、android内にuseLibraryの行を追加します。
たいていの場合はこれだけで解決します。
解決策の一つはこちらを参考にしました。
developer.android.com
まとめ
解決策のどちらか一つを実行するだけで自分の場合はエラーが消えました。どちらとも試して見て気に入った方やうまくいった方を選択してみるのが良いかと思います。