簡體   English   中英

Android Studio外部庫

[英]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.

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