簡體   English   中英

AndroidManifest.xml中的uses-library標簽與Gradle中的useLibrary

[英]uses-library tag in AndroidManifest.xml vs useLibrary in Gradle

我想為Android P構建一個使用Apache HTTP客戶端的項目。據我所知,有兩種方法可以做到這一點:

首先通過AndroidManifest.xml:

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

第二個來自build.gradle:

android {
    useLibrary 'org.apache.http.legacy'
}

這些方法是否相同?

為什么構建gradle中的android.useLibrary命令不會在AndroidManifest.xml中添加uses-library標記?

擴展CommonsWare評論的內容。

使用gradle依賴使用apache http客戶端,不要修改AndroidManifest.xml

build.gradle修改為

dependencies {
    implementation 'org.apache.httpcomponents:httpclient-android:4.3.5.1'
}

將此添加到AndroidManifest.xml應該在運行時通知Android這些類存在:

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

參考: specify_requirement_for_apache_http_legacy_library

build.gradle聲明確保庫在編譯時可用。

useLibrary 'org.apache.http.legacy'

參考: behavior-apache-http-client

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM