私はシステムを再インストールする必要がありましたが、今日、gradleと同期しようとするとAndroid Studioでこのエラーが発生します:
Warning: Unable to find optional library: org.Apache.http.legacy
私のプロジェクトのgradleは次のとおりです。
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.Android.tools.build:gradle:1.3.0'
}
}
allprojects {
repositories {
mavenCentral()
}
}
そして、私のモジュールgradle:
apply plugin: 'Android'
Android {
useLibrary 'org.Apache.http.legacy'
compileSdkVersion 23
buildToolsVersion '23.0.2'
defaultConfig {
minSdkVersion 16
targetSdkVersion 23
}
buildTypes {
release {
}
}
productFlavors {
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.Android.support:support-v4:23.1.1'
compile 'com.Android.support:appcompat-v7:23.1.1'
}
Apache HTTP APIを引き続き使用するには、最初にbuild.gradleファイルで次のコンパイル時の依存関係を宣言する必要があります。
Android { useLibrary 'org.Apache.http.legacy' }
このスレッド の提案を試しましたが、機能しません。 Android studio 1.5および2プレビューと同じ結果。
どうすれば修正できますか?
Edit:私が今まで試したもの:
Gradleクラスパスのバージョンを1.3.0、1.3.1、1.5.0に変更します。
compileSdkVersion
とtargetSdkVersion
を22に変更します。また、23.0.1、23.0.0、22.0.1のbuildToolsVersionも変更します。
トップレベルbuild.gradle-/build.gradle
buildscript {
...
dependencies {
classpath 'com.Android.tools.build:gradle:1.3.1'
}
}
モジュール固有のbuild.gradle-/app/build.gradle
Android {
compileSdkVersion 23
buildToolsVersion "23.0.0"
useLibrary 'org.Apache.http.legacy'
...
}
Android/Sdk/platforms/Android-23/optionalフォルダーにあるorg.Apache.http.legacy.jarをapp/libsディレクトリーに追加し、プロジェクトを同期します
多くの仕事をした後、このソリューションは私のために働きます。 ** Studio\Android\sdk\platforms **ここでAndroid-23を削除し、SDKマネージャーからAPI 23を再度更新します。**。それはあなたの問題を解決します。
私の場合、optional.json
in <sdk-path>\platforms\Android-23\optional\
、次のコンテンツを含むディレクトリ:
[
{
"name": "org.Apache.http.legacy",
"jar": "org.Apache.http.legacy.jar",
"manifest": false
}
]
上記の内容で新しいJSONファイルを作成すると、問題が解決しました。
org.Apache.http.legacy.jar
jarファイルをAndroid Stuidoプロジェクトのapp/libsフォルダーに追加する必要があります。
Jar Location - `<SDK LOCATION>\Android-sdk\platforms\Android-23\optional`
これを行うには、プロジェクトを右クリックしてShow in Explorer
を選択し、...\app\libs
に移動して上記のjarファイルとプロジェクトをGradleファイルと同期します
Module:app
Android {
compileSdkVersion 'Google Inc.:Google APIs:23'
buildToolsVersion "24.0.0"
defaultConfig {
applicationId "<ur_app_id>"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
}
私の場合、そのコンピューターに正しいSDKがインストールされていなかったため、実際に問題が発生していました。 .../Android/Sdk/platforms/Android-23
に移動すると、そのフォルダーが空であることがわかりました。 SDKマネージャーを介してSDK 23を追加すると、問題が修正され、コンパイルできるようになりました。
Build.gradleファイルのcompileSdkVersion
で指定されているのと同じバージョンのSDKがインストールされていることを手動で確認する必要があります。
プロジェクトgradleファイルを更新して、gradleバージョン1.3.1を使用します。
classpath 'com.Android.tools.build:gradle:1.3.1'
また、コードハウスリポジトリを追加してみてください。
repositories {
mavenCentral()
maven{
url 'http://repository.codehaus.org'
}
}
時間を節約するには、2つのソリューションが最適であり、私にとっては有効です。
ソリューション1:
Android SDKマネージャーを開き、API 23を再インストールします(削除して再インストールします)。
ソリューション2:
optional.json
ファイル抽出を含むこのファイルをダウンロードし、optional.jsonを次の場所に移動します。
C:\ Users \\ AppData\Local\Android\sdk\platforms\Android-23\optional
上記の解決策が機能しない場合は、この方法を試してください
最近この問題が発生しましたが、これはパスの長さの制限が原因で、最大256文字だと思います。
プロジェクトを再配置すると、ビルドが成功します。