web-dev-qa-db-ja.com

Gradleは「オプションのライブラリが見つかりません」と同期できませんでした

私はシステムを再インストールする必要がありましたが、今日、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'
}

Googleドキュメントから

Apache HTTP APIを引き続き使用するには、最初にbuild.gradleファイルで次のコンパイル時の依存関係を宣言する必要があります。

Android {
    useLibrary 'org.Apache.http.legacy'
}

このスレッド の提案を試しましたが、機能しません。 Android studio 1.5および2プレビューと同じ結果。

どうすれば修正できますか?

Edit:私が今まで試したもの:

  1. Gradleクラスパスのバージョンを1.3.0、1.3.1、1.5.0に変更します。

  2. compileSdkVersiontargetSdkVersionを22に変更します。また、23.0.1、23.0.0、22.0.1のbuildToolsVersionも変更します。

17
Daniel

トップレベル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ディレクトリーに追加し、プロジェクトを同期します

14
johnrao07

多くの仕事をした後、このソリューションは私のために働きます。 ** Studio\Android\sdk\platforms **ここでAndroid-23を削除し、SDKマネージャーからAPI 23を再度更新します。**。それはあなたの問題を解決します。

9
Naeem Ibrahim

私の場合、optional.json in <sdk-path>\platforms\Android-23\optional\、次のコンテンツを含むディレクトリ:

[
  {
    "name": "org.Apache.http.legacy",
    "jar": "org.Apache.http.legacy.jar",
    "manifest": false
  }
]

上記の内容で新しいJSONファイルを作成すると、問題が解決しました。

8
notsopopularguy

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'
    }
}
}
2
Rupesh Yadav

私の場合、そのコンピューターに正しいSDKがインストールされていなかったため、実際に問題が発生していました。 .../Android/Sdk/platforms/Android-23に移動すると、そのフォルダーが空であることがわかりました。 SDKマネージャーを介してSDK 23を追加すると、問題が修正され、コンパイルできるようになりました。

Build.gradleファイルのcompileSdkVersionで指定されているのと同じバージョンのSDKがインストールされていることを手動で確認する必要があります。

1
Tim Rae

プロジェクトgradleファイルを更新して、gradleバージョン1.3.1を使用します。

classpath 'com.Android.tools.build:gradle:1.3.1'

また、コードハウスリポジトリを追加してみてください。

repositories {
        mavenCentral()
        maven{
            url 'http://repository.codehaus.org'
        }
    }
1

時間を節約するには、2つのソリューションが最適であり、私にとっては有効です。

ソリューション1:

Android SDKマネージャーを開き、API 23を再インストールします(削除して再インストールします)。

ソリューション2:

optional.jsonファイル抽出を含むこのファイルをダウンロードし、optional.jsonを次の場所に移動します。

C:\ Users \\ AppData\Local\Android\sdk\platforms\Android-23\optional

1
Kapil Rajput

上記の解決策が機能しない場合は、この方法を試してください

最近この問題が発生しましたが、これはパスの長さの制限が原因で、最大256文字だと思います。

プロジェクトを再配置すると、ビルドが成功します。

0
Arpit Patel
  1. sdk\platforms\Android-23\optional\org.Apache.http.legacy.jar」をアプリモジュールのlibsディレクトリにコピーしてから、ライブラリとして追加します。
  2. プロガードを有効にする場合は、「proguard-rules.pro」を編集して関連クラスを保持してください。そうしないと例外が発生します。
0
yuiopt