【问题标题】:Why Warning:Unable to find optional library: org.apache.http.legacy occurs?为什么出现警告:无法找到可选库:org.apache.http.legacy?
【发布时间】:2015-11-24 16:26:56
【问题描述】:

我的 gradle 文件:

apply plugin: 'com.android.application' 

android { 
  useLibrary 'org.apache.http.legacy' 
  compileSdkVersion 23 
  buildToolsVersion "23.0.0" 

  defaultConfig { 
    applicationId "com.skripsi.irwanto.paud" 
    minSdkVersion 15 
    targetSdkVersion 23 
    versionCode 1 
    versionName "1.0" 
  } 

  buildTypes { 
    release { 
      minifyEnabled false 
      proguardFiles getDefaultProauardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
  } 
} 
dependencies { 
 compile fileTree(include: ['*.jar'], dir: 'libs') 
 testCompile 'junit:junit:4.12' 
 compile 'com.android.support:appcompat-v7:23.1.11 
} 

我得到Warning:Unable to find optional library: org.apache.http.legacy

【问题讨论】:

  • 您的代码是build.gradle 的图像...?嗯。不,它不是那样工作的。以 text 形式发布您的代码和 logcat。
  • 对我来说,我删除了这一行(useLibrary 'org.apache.http.legacy')并将我的目标 SDK 更改为 22

标签: android apache-commons-httpclient


【解决方案1】:

我想,无需重新安装 SDK 即可解决此问题的更简单方法是在 <sdk-path>\platforms\android-23\optional\ 目录中创建一个名为 optional.json 的文件,其内容如下:

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

它为我解决了问题。


编辑:信息取自@domoch 下面关于如何定位您的 SDK 位置的回答

定位您的 Android SDK 的位置

转到 Android Studio Settings -> Appearence & Behavior -> System Settings 并查找 Android SDK Location。在 Windows 中,它通常会指向 C:\Users\<username>\AppData\Local\Android\sdk

【讨论】:

  • 这并没有为我解决问题。我仍然有警告并且项目没有编译
  • 您是否安装了多个 SDK 版本?您是否更新了正确的文件夹?
  • 安装了一个 sdk 版本,已将 http.legacy.jar 复制到库,但我仍然收到错误
  • @ventura8:也许尝试使用新的 SDK 重新安装 Android Studio 可能是适合您的解决方案。你试过吗?
  • @ventura8:你搞定了吗?我也面临同样的问题
【解决方案2】:

我遇到了完全相同的问题。请检查您是否有android-sdk-windows\platforms\android-23\optional\optional.json 文件。如果不是,那么只需重新安装 API 23(删除并重新安装)。

【讨论】:

  • 这对我有用!从带有新 SDK 的全新 Android Studio 安装中,该文件似乎丢失了。更新所有 API 23 包后它仍然丢失。删除所有 API 23 包并重新安装。
  • 好吧,我不会质疑为什么那个文件消失了,但是谢谢!
【解决方案3】:

为什么?如果您在 Windows 上使用 Android Studio,那么 optional.json 文件不应仅在 \Program Files (x86)\...\platforms\android-23\optional\ 中。

所以:转到 Android Studio Settings -> Appearence & Behavior -> System Settings 并查找 Android SDK Location,在相应文件夹中复制(或创建)optional.json。 或者只是将Android SDK Location 编辑为\Program Files (x86)\...

在我的例子中,Android SDK Location 是 C:\Users\Usernade\AppData\Local\Android\sdk 并且没有 optional.json 文件。

【讨论】:

    【解决方案4】:
    1. 设置 -> 外观和行为 -> 系统设置并查找 Android SDK 位置

    2. platforms/Android 23/optional/

    3. org.apache.http.legacy jar 文件是复制并粘贴你的 android studio 项目 lib 和这个 jar 文件 gradle 编译文件('libs/org.apache.http.legacy.jar')

    【讨论】:

      【解决方案5】:

      错误是optional.json文件不在<sdk-path>\platforms\android-23\optional\文件夹中。

      我通过以下方式解决了这个问题:

      1. 转到 SDK 管理器
      2. 选择 Android Sdk 并在适当的 API 级别提供更新。
      3. 只需更新即可。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-05
        • 2019-09-04
        • 1970-01-01
        • 2016-07-27
        • 1970-01-01
        相关资源
        最近更新 更多