相关疑难解决方法(0)

如何在Android Marshmallow上使用传统的Apache HTTP客户端?

背景

在Android Marshmallow上,Google完全取消了对Apache HTTP客户端的支持(链接在这里),因为与替代方案相比,它没有良好的性能.

这可能也是Android Marshmallow上如此多应用程序崩溃的原因.

问题

通过将此行添加到gradle文件,Google允许您仍然使用此API,而不是内置的API:

useLibrary 'org.apache.http.legacy'
Run Code Online (Sandbox Code Playgroud)

所以,这就是我做的:

dependencies {
    classpath 'com.android.tools.build:gradle:1.3.0'
}
Run Code Online (Sandbox Code Playgroud)

和:

android {
    compileSdkVersion 'android-MNC'
    buildToolsVersion "23.0.0 rc3"
    useLibrary 'org.apache.http.legacy'

    defaultConfig {
        applicationId "com.example.user.androidmtest"
        minSdkVersion 'MNC'
        targetSdkVersion 'MNC'
        versionCode 1
        versionName "1.0"
    }
Run Code Online (Sandbox Code Playgroud)

当我尝试它时,它编译得很好(没有显示错误,我可以运行概念验证应用程序,因为它没有任何特殊代码),但当我尝试使用我知道的一些类时是旧API的一部分(如"HttpClient"类),我看到它不允许我这样做.

我知道不建议使用此解决方案,但我们必须让应用程序准备好至少暂时在那里工作,直到我们100%完成Android Marshmallow应该改变的所有事情,我们不希望出现意外情况.崩溃的形式.

这是一个截图:

在此输入图像描述

这个问题

它为什么会发生?我使用得当吗?


编辑:这里报告了这个问题:

https://code.google.com/p/android/issues/detail?id=181474

java android android-gradle-plugin android-6.0-marshmallow

74
推荐指数
5
解决办法
8万
查看次数

为什么警告:无法找到可选库:org.apache.http.legacy发生?

我的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 
} 
Run Code Online (Sandbox Code Playgroud)

我明白了 Warning:Unable to find optional library: org.apache.http.legacy

android apache-commons-httpclient

30
推荐指数
2
解决办法
4万
查看次数

如何在Android P上使用apache http

当我在Android P设备中运行我的应用程序时,我收到如下错误:

java.lang.RuntimeException: Unable to instantiate application com.le.android.client.LeApplication: java.lang.ClassNotFoundException: Didn't find class "com.le.android.client.LeApplication" on path: DexPathList[[zip file "/system/framework/org.apache.http.legacy.boot.jar", zip file "/data/app/com.le.android.client-uvQkO641-__8Z_p2oT0t7g==/base.apk"],nativeLibraryDirectories=[/data/app/com.le.android.client-uvQkO641-__8Z_p2oT0t7g==/lib/arm, /data/app/com.le.android.client-uvQkO641-__8Z_p2oT0t7g==/base.apk!/lib/armeabi, /system/lib, /vendor/lib]]
at android.app.LoadedApk.makeApplication(LoadedApk.java:1009)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5836)
at android.app.ActivityThread.access$1000(ActivityThread.java:198)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1637)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6649)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:826)

Caused by: java.lang.ClassNotFoundException: Didn't find class "com.le.android.client.LeApplication" on path: DexPathList[[zip file "/system/framework/org.apache.http.legacy.boot.jar", zip file "/data/app/com.le.android.client-uvQkO641-__8Z_p2oT0t7g==/base.apk"],nativeLibraryDirectories=[/data/app/com.le.android.client-uvQkO641-__8Z_p2oT0t7g==/lib/arm, /data/app/com.le.android.client-uvQkO641-__8Z_p2oT0t7g==/base.apk!/lib/armeabi, /system/lib, /vendor/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:125)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at android.app.AppComponentFactory.instantiateApplication(AppComponentFactory.java:50)
at android.app.Instrumentation.newApplication(Instrumentation.java:1120)
at android.app.LoadedApk.makeApplication(LoadedApk.java:1001)
... 9 more …
Run Code Online (Sandbox Code Playgroud)

java android apache-httpcomponents

8
推荐指数
1
解决办法
5562
查看次数

HttpClient 在我的 android studio 1.4 中不起作用

首先抱歉我的英语不好我是 android studio 1.4 的新手,我在 HttpClient 中遇到错误

错误

C:\Users\madhu\AndroidStudioProjects\LoginAndsign\app\src\main\java\com\login\loginandsign\SimpleHttpClient.java

Error:(27, 20) error: cannot find symbol class HttpClient

Error:(34, 20) error: cannot find symbol class HttpClient

Error:(36, 31) error: cannot find symbol class DefaultHttpClient

Error:(40, 13) error: cannot find symbol variable ConnManagerParams


Error:(57, 13) error: cannot find symbol class HttpClient

Error:(58, 13) error: cannot find symbol class HttpPost

Error:(58, 36) error: cannot find symbol class HttpPost

Error:(59, 13) error: cannot find symbol class UrlEncodedFormEntity

Error:(59, 51) error: cannot find symbol class …
Run Code Online (Sandbox Code Playgroud)

android android-studio

5
推荐指数
1
解决办法
2662
查看次数