2

我正在使用Android 1.5(Win 8.1 x64),我将DrKLO/Telegram存储库分叉GitHub并将其克隆到我的本地计算机上。现在,每当我尝试同步 Gradle 或清理/构建项目时,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\optionallibs目录,并将其添加到依赖项中

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

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

4

4 回答 4

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

    [
         {
        "name": "org.apache.http.legacy",
        "jar": "org.apache.http.legacy.jar",
        "manifest": false
       }
    ]
    
于 2016-02-25T10:26:20.937 回答
1

我不认为罐子可用,mavenCentral()而是尝试使用jcenter()

repositories {
    mavenCentral()
    jcenter()
}

你也应该尝试更新到最新的 android gradle 插件

buildscript {
    repositories {
        mavenCentral()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.0.0-alpha1'
    }
}
于 2015-12-02T09:39:51.923 回答
0

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

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

2.添加

android.useDeprecatedNdk=true

在项目的 Gradle.properties 文件中。

于 2015-12-28T17:06:22.923 回答
0

仅适用于那些在 Android API 28 上寻找解决方案的人!

useLibrary 'org.apache.http.legacy'不适用于 Android v9.0 API28。应用程序在调用以下行时崩溃..

`DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
HttpResponse httpResponse = httpClient.execute(httpPost);`

只需遵循 2 个简单的步骤

  1. 在您的 AndroidManifest.xml 中放入标记下的下一行

    <uses-library android:name="org.apache.http.legacy" android:required="false" />

  2. 将您的网址从“http”更改为需要调用的“https”

这对我有用..即使在 2020 年年中!

于 2020-05-08T06:57:22.497 回答