繁体   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