1. 程式人生 > >android6.0 缺失HttpClient的相關類的解決方法

android6.0 缺失HttpClient的相關類的解決方法

android {
    useLibrary
'org.apache.http.legacy'}
注意放置的位置:是在android {}中
可以參考:

最新的的已經按上面的方法,更新了。
另外:在eclipse中,加入org.apache.http.legacy.jar後,把android sdk版本改為低於6.0也可以正常使用
附加:
u013004268:加了上面的jar,混淆出現問題
 解決方法:
對這個jar,不做混淆處理
下面是混淆配置(eclipse上面測試通過)

混淆配置:

#不混淆android-async-http(這裡的與你用的httpClient框架決定) -keep class com.loopj.android.http.**{*;}    #不混淆org.apache.http.legacy.jar  -dontwarn android.net.compatibility.**  -dontwarn android.net.http.**  -dontwarn com.android.internal.http.multipart.**  -dontwarn org.apache.commons.**  -dontwarn org.apache.http.**  -keep class android.net.compatibility.**{*;}  -keep class android.net.http.**{*;}  -keep class com.android.internal.http.multipart.**{*;}  -keep class org.apache.commons.**{*;}  -keep class org.apache.http.**{*;}

最後是完整的混淆配置檔案的內容:

<pre name="code" class="html">-ignorewarnings  
  
# 指定程式碼的壓縮級別  
-optimizationpasses 5   
# 不使用大小寫混合  
-dontusemixedcaseclassnames  
# 混淆第三方jar  
-dontskipnonpubliclibraryclasses  
# 混淆時不做預校驗  
-dontpreverify  
 # 混淆時記錄日誌  
-verbose  
 # 混淆時所採用的演算法  
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*  
  
 # 保持哪些類不被混淆:四大元件,應用類,配置類等等  
-keep public class * extends android.app.Activity  
-keep public class * extends android.app.Application  
-keep public class * extends android.app.Service  
-keep public class * extends android.content.BroadcastReceiver  
-keep public class * extends android.content.ContentProvider  
-keep public class * extends android.app.backup.BackupAgentHelper  
-keep public class * extends android.preference.Preference  
-keep public class com.android.vending.licensing.ILicensingService  
  
# 保持 native 方法不被混淆  
-keepclasseswithmembernames class * {  
    native <methods>;  
}  
  
 # 保持自定義控制元件類不被混淆  
-keepclasseswithmembers class * {  
    public <init>(android.content.Context, android.util.AttributeSet);  
}  
  
 # 保持自定義控制元件類不被混淆  
-keepclasseswithmembers class * {  
    public <init>(android.content.Context, android.util.AttributeSet, int);  
}  
  
 # 保持自定義控制元件類不被混淆  
-keepclassmembers class * extends android.app.Activity {  
   public void *(android.view.View);  
}  
  
 # 保持列舉 enum 類不被混淆  
-keepclassmembers enum * {  
    public static **[] values();  
    public static ** valueOf(java.lang.String);  
}  
  
 # 保持 Parcelable 不被混淆  
-keep class * implements android.os.Parcelable {  
  public static final android.os.Parcelable$Creator *;  
}  
 # 這個主要是在layout中寫的onclick方法android:onclick="onClick",不進行混淆  
 -keepclassmembers class * extends android.app.Activity {                                     
   public void *(android.view.View);   
 }   
   
 #保持註解  
 -keepattributes *Annotation*  
   
#不混淆android-async-http  
-keep class com.loopj.android.http.**{*;}  
   
 #不混淆org.apache.http.legacy.jar   
 -dontwarn android.net.compatibility.**  
 -dontwarn android.net.http.**  
 -dontwarn com.android.internal.http.multipart.**  
 -dontwarn org.apache.commons.**  
 -dontwarn org.apache.http.**  
 -keep class android.net.compatibility.**{*;}  
 -keep class android.net.http.**{*;}  
 -keep class com.android.internal.http.multipart.**{*;}  
 -keep class org.apache.commons.**{*;}  
 -keep class org.apache.http.**{*;}  


相關推薦

android6.0 缺失HttpClient相關解決方法

android {    useLibrary 'org.apache.http.legacy'} 注意放置的位置:是在android {}中 可以參考: 最新的的已經按上面的方法,更新了。 另外:在eclipse中,加入org.apache.http.legacy.jar後,把android sdk版

python3.6.1+selenium3.0環境安裝問題及解決方法

pre trace service java版本 erro back res exec rem 腳本:(打開火狐瀏覽器,進入百度網頁,搜索selenium) from selenium import webdriver browser = webdriver.F

安裝vCenter6.0遇到的問題以及解決方法

vcenter6.0 vdcpromo vcsservicemanager failed with error code 1603 實驗環境:在Window Server 2008 R2上安裝vCenter6.0,數據庫采用的SQL Server2012 問題一:安裝到50%的時候提示:無法啟動i

Target runtime Apache Tomcat v6.0 is not defined.錯誤解決方法

view js xml val fix for .text each 工程 eclipse 我們在用Eclipse導入一個新的項目時,假設我們使用JDK1.7和tomcat7時,導入的項目會在Eclipse的Marker下提示Target runtime

MATLAB 7.0 無法卸載的解決方法

經典 win -m 一個 main tlab mage ima .com 如果在卸載Matlab時,會彈出一個Exeption calling main 的對話框,死活不讓卸, 包括用卸載工具卸載都不行。 原因是你的XP的主題和Matlab不兼容。在桌面點擊右鍵選擇屬性-

String的相關方法

線程安全 叠代 new 當前位置 return nbsp 下一個 解析 緩沖 String的相關類和方法 一、String,StringBuilder,StringBuffer三者的區別 這三個類之間的區別主要是在兩個方面,即運行速度和線程安全這兩方面 1、運行速度:

webpack4.0.1安裝問題及解決方法

style onf 出了 main 但是 sep 提示 js文件 har 2月底的時候,webpack4正式發布了,但是當我們安裝之後,使用下面的語句來打包的時候,發現打包失敗了 webpack ./src/main.js ./dist/bundle.js 並且給出了下

Android studio 升級到3.0後各種報錯解決方法

   最近把AS升級到3.2.1後老工程出現了一系列問題 總的來說, 不要隨便用最新的東西, SDK也好,AS也好,對老工程都不友好, 要等其他人躺坑躺的差不多再搞 我是先把gradle直接升級到了5.0, AS升級到了3.2.1 , SDK升到了28, 然後就

【Spring MVC】 錯誤: 找不到或無法載入主 解決方法

【Spring MVC】 錯誤: 找不到或無法載入主類 解決方法   最近在學習Spring,在學習SpringMVC過程中,將web.xml、Dispatcher-servlet.xml、applicationContext.xml等配置完成之後,卻不懂如何部署專案到to

SSL相關漏洞解決方法

最近用綠盟掃描系統進行內網網系統掃描,有幾臺裝置被掃出了SSL相關漏洞,在此做一個簡短的加固方法。 本次涉及漏洞 1.漏洞名稱:SSL 3.0 POODLE攻擊資訊洩露漏洞(CVE-2014-3566)【原理掃描】 2.SSL/TLS 受誡禮(BAR-MITZVAH)攻擊漏洞(CVE-2015-2808

匯入maven專案步驟及相關錯誤解決方法

一、匯入mavin步驟: Import——maven——Existring maven Projects——選中需要匯入的專案路徑(選擇到專案名稱), 匯入專案後,右擊專案——Properties-->Deployment Assembly --> Add -->&n

one-class svm_predict返回0或無法執行的解決方法(成功)

在使用svm中遇到的問題與解決,首先下面的程式碼是沒有實現的(但邏輯是沒有問題的,只是svm_predict不支援核2,3,4) String path = Environment.getExternalStorageDirectory().toString()+ Fi

Spring Data Jpa 連線MySQL8.0.11碰到的問題解決方法

1: java.math.BigInteger cannot be cast to java.lang.Long 問題: 一開始寫的驅動為:com.mysql.jdbc.Driver 連線時報 java.math.BigInteger cannot be cas

未在本地計算機上註冊Microsoft.ACE.OLEDB.12.0提供程式”問題的解決方法

       最近在準備使用VS編寫一個解析Excel檔案的小程式,由於有3年沒有用過C#程式設計,很多細節部分都忘記了,從而導致有些問題得不到很快速的解決。最近就遇到了在使用oledb元件連結Excel時,總是會報出“未在本地計算機上註冊Microsoft.ACE.OLED

android9.0 無法進行http請求解決方法。CLEARTEXT communication to host not permitted by network security

轉自:https://blog.csdn.net/qq_18620851/article/details/80617549  問題: 由於 Android P 限制了明文流量的網路請求,非加密的流量請求都會被系統禁止掉。 如果當前應用的請求是 htttp 請求,而非 https ,

安裝Windows提示無法在驅動器0分割槽上安裝windows解決方法

在通過U盤或光碟安裝win8/win8.1/win10系統時,不少使用者遇到無法安裝的問題,提示“無法在驅動器0的分割槽1上安裝windows”,格式化分割槽1也不能解決,進而提示Windows無法安裝到這個磁碟,選中的磁碟採用GPT/MB

Eclips載入不了rt.jar下面的sun.net.ftp.FtpClient,解決方法

在做ftp,程式碼中引用 import sun.net.ftp.FtpClient; 報如下錯誤 Access restriction: The type FtpClient is not accessible due torestriction on required

面試題--三個執行緒迴圈列印ABC 10次:另解決方法

看到網上有各種寫法,但總感覺的看起來晦澀難懂。於是自己寫了一個,如下: import java.util.concurrent.atomic.AtomicBoolean; class Printer extends Thread { public AtomicBoo

ajax跨域問題的另解決方法

我們知道瀏覽器基於安全的考慮,AJAX只能訪問本域下的資源,而不能跨域訪問。也就是說,domain1.com站點中的AJAX只能訪問domain1.com站點下的資源,而不能跨域訪問domain2.com站點中的資源.這就是AJAX跨域問題. 但如果要訪問不同域的資料時,由

Target runtime Apache Tomcat v8.0 is not defined.錯誤解決方法

新匯入的一個web工程,在problems中顯示錯誤是:Target runtime Apache Tomcatv8.0 is not defined. 終於找到解決方法。方法是:在工程目錄下的.settings資料夾裡,開啟org.eclipse.wst.common.p