[英]Android Studio external library
我開始使用此IDE進行一些項目,但仍然發現一些煩人的情況,使用eclipse可以很容易地解決這些問題,但是我不知道該如何面對。
我正在向我的應用程序實現郵件發送功能。 這對於用戶必須是透明的,因此我正在使用javax.mail。
為此,我下載了“ activation.jar”,“ additionnal.jar”和“ mail.jar”文件,並將它們保存在libs文件夾中。
現在,我正在創建自定義發送程序類,該類擴展了javax.mail.Authenticator 。 但是它找不到javax.mail的導入,郵件顯示為紅色。 我正在嘗試從庫中導入它,但是找不到它們。
我也將此包含在gradle.build中:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
我已經讀過幾個這樣的問題,那就是右鍵單擊庫,然后單擊“ 添加為庫” ,但是這個選項對我而言並不顯示。
那么,使Android Studio識別這些庫的方法是什么?
我鼓勵您使用人工制品,例如Sonatype Nexus。 在這里,您將部署並從其他遠程工件檢索工件。 但目前可能僅使用MavenCentral。
在頂層build.gradle
您需要配置工件所在的存儲庫。
repositories {
mavenCentral() //a public artifactory
maven {
url "https://your.privaterepo.com"
}
}
在您的項目級別build.gradle
您將為javax.mail
添加一個依賴項,例如
dependencies {
compile 'javax.mail:mail:1.5.0-b01' // G:A:V
}
為了查找文物GAV坐標(G roup 一個 rtifact V版為)你可以使用只是谷歌,這往往指向你http://mvnrepository.com/在那里你可以很容易地拿起gradle這個符號的依賴。
然后,您將不需要手動下載工件,gradle會為您處理。 您要做的就是聲明存儲庫和依賴項。
從gradle這個部署文物,我用一個進球uploadArchives
在我的模塊級的build.gradle:
apply plugin: 'maven'
//noinspection GroovyMissingReturnStatement
uploadArchives {
repositories {
mavenDeployer {
repository(url: 'http://our.private.nexus/nexus/content/repositories/releases') {
authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD);
}
snapshotRepository(url: 'http://our.private.nexus/nexus/content/repositories/snapshots') {
authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD);
}
pom.groupId = "the.groupid.for.this.artifact"
pom.artifactId = "artifactid"
pom.version = "1.2.3"
}
}
}
如果您已將庫添加到src
lib
文件夾中。 它不會起作用。
在項目展示區中單擊android
並選擇Project
,將新文件夾創建為libs
,然后將所有第三方庫添加到其中,然后右鍵單擊它,您將獲得將其添加為庫的選項。
添加完后,您也不需要在gradle文件中寫入文件。 Android Studio會自動添加行本身。
我通常會使用導入* .jar庫來欺騙。 將* .jar文件放入libs文件夾后。 我刪除了compile fileTree(dir: 'libs', include: ['*.jar'])
某些字符以compile fileTree(dir: 'libs', include: ['*.j'])
並將其重寫以compile fileTree(dir: 'libs', include: ['*.jar'])
。 這是一種同步我的build.gradle的方法:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.