我正在尝试在我的示例项目中将Android存档(aar)从本地Maven集成到Android工作室。
我在Android studio中遇到以下构建错误:
评估项目时出现问题:app无法在org.gradle.api.internal.artifacts.repositories.DefaultMavenArtifactRepository_Decorated@181db40上找到属性HOME。
答案 0 :(得分:0)
如果你使用本地 maven 来使用android studio,你需要这样做意味着要添加对.aar包的引用,理想情况下它必须存储在中央maven存储库中。
一个简单而非常简单的选择是在您的开发机器上创建一个本地maven存储库,并在那里安装您的库。然后从您的gradle构建中引用它。这样做非常简单!。
要测试maven是否正常工作,请打开一个新的控制台窗口并运行以下命令:
mvn -version
如果一切正常,是时候将您的库添加到maven存储库了。在命令提示符中运行以下命令:
mvn install:install-file -Dfile = d:\ mylibrary- {version} .aar -DgroupId = com.example -DartifactId = mylibrary -Dversion = {version} -Dpackaging = aar
不要忘记更换库的正确路径,设置groupId,artifactId和版本号。
最后,编辑build.gradle以开始查看本地maven存储库。例如,如果要同时使用maven central和本地存储库,则可以将它们添加到存储库配置中。 以下是使用我们在上面注册的库的Android应用程序的一个非常基本的build.gradle示例:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4.2'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
mavenLocal()
}
dependencies {
compile('com.example:mylibrary:0.2')
}
android {
compileSdkVersion 17
buildToolsVersion '17.0.0'
}
最后,运行build命令来构建你的应用: gradle clean build。
主要问题是在maven发布配置文件中获取生成的.aar文件。为此,我们将调用android.libraryVariants,它将初始化此对象,并创建构建所需的所有子任务,包括创建.aar文件的“bundleRelease”。
以下是我的build.gradle文件:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4.2'
}
}
apply plugin: 'android-library'
apply plugin: 'maven-publish'
version '0.2'
group 'com.example'
android {
compileSdkVersion 17
buildToolsVersion '17.0.0'
defaultConfig {
versionCode 2
versionName '0.2'
}
}
android.libraryVariants
publishing {
publications {
maven(MavenPublication) {
artifact bundleRelease
}
}
}
如果要将artifactId更改为自定义项,可以通过添加以下行来更改settings.gradle中的项目名称:
rootProject.name ='mylibrary' 而已。现在打开项目文件夹中的命令提示符并运行以下命令以构建库并将其发布到本地maven存储库:
gradle clean build publishToMavenLocal
我过去使用的一些基本文章: