useLibrary'org.apache.http.legacy'不起作用

时间:2015-12-01 17:49:22

标签: android android-studio android-gradle android-uselibrary

我正在使用Android 1.5(Win 8.1 x64),我在DrKLO/Telegram上分叉GitHub存储库并将其克隆到我的本地计算机上。现在每当我尝试同步Gradle或clean / build项目时,Gradle同步都会失败并显示以下消息:

  

警告:无法找到可选库:org.apache.http.legacy

build.gradle (项目:电报)[DrKLO/Telegram/blob/master/build.gradle]

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.1'
    }
}

build.gradle (模块:TMessagesProj)[DrKLO/Telegram/blob/master/TMessagesProj/build.gradle]

apply plugin: 'com.android.application'

repositories {
    mavenCentral()
}

dependencies {
    compile 'com.android.support:support-v4:23.1.+'
    compile 'com.google.android.gms:play-services:3.2.+'
    compile 'net.hockeyapp.android:HockeySDK:3.6.+'
    compile 'com.googlecode.mp4parser:isoparser:1.0.+'
}

android {
    compileSdkVersion 23
    buildToolsVersion '23.0.2'

    useLibrary 'org.apache.http.legacy'

    ...
}

我知道StackOverflow上有很多关于这个问题的问题。但他们中没有人和我合作过。我甚至尝试了一些替代方法,例如将org.apache.http.legacy.jar文件从%USERPROFILE%\AppData\Local\Android\sdk\platforms\android-23\optional复制到libs目录,并将其添加到依赖项中

compile files('libs/org.apache.http.legacy.jar')

虽然,我真的不喜欢这个解决方案,但它也没有用,Gradle仍然失败......

3 个答案:

答案 0 :(得分:3)

  1. 找到 org.apache.http.legacy.jar 文件,通常是在SDK的平台\ android-xx \ optional
  2. 创建 optional.json
  3. 粘贴以下内容:

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

答案 1 :(得分:1)

我认为jar不在mavenCentral(),而是尝试使用jcenter()

repositories {
    mavenCentral()
    jcenter()
}

此外,您应该尝试更新到最新的Android gradle插件

buildscript {
    repositories {
        mavenCentral()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.0.0-alpha1'
    }
}

答案 2 :(得分:0)

1.创建一个Text文件并将其命名为optional,文件类型为.json并添加以下内容:

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

2.添加

android.useDeprecatedNdk=true

在项目的Gradle.properties文件中。