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