gpt4 book ai didi

android - 无法在库模块中使用本地 .aar 文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:37:27 25 4
gpt4 key购买 nike

我有一个 socialauth-androidaar库添加到我的项目中。我已将它放在 flatDir 目录中,如 here 所述而且效果很好。
现在,我将我的一些代码移动到名为 commons 的库模块中,以便在另一个项目中重用它。 socialauth-android 将完全由库模块使用,所以我将其移动到 project/commons/libs/ 中并重写了我的 build.gradle文件。从现在开始我无法构建我的项目,因为出现以下错误:

Error:A problem occurred configuring project ':ScrollApplication'.
> Could not resolve all dependencies for configuration ':ScrollApplication:_developmentDebugCompile'.
> Could not find :socialauth-android:.
Searched in the following locations:
http://dl.bintray.com/populov/maven//socialauth-android//socialauth-android-.pom
http://dl.bintray.com/populov/maven//socialauth-android//socialauth-android-.aar
https://oss.sonatype.org/content/repositories/snapshots//socialauth-android//socialauth-android-.pom
https://oss.sonatype.org/content/repositories/snapshots//socialauth-android//socialauth-android-.aar
https://repo1.maven.org/maven2//socialauth-android//socialauth-android-3.2.pom
https://repo1.maven.org/maven2//socialauth-android//socialauth-android-3.2.aar
file:/home/artem/Workspace/scrollandroid/libraries/socialauth-android-3.2.aar
file:/home/artem/Workspace/scrollandroid/libraries/socialauth-android.aar
Required by:
scrollandroid:ScrollApplication:unspecified > scrollandroid:commons:unspecified

错误表明依赖项解析器试图在 project/libraries 文件夹中找到 socialauth-android.aar,该文件夹是我的模块之间共享的所有公共(public)库的文件夹项目。但是我在我的 project/commons/build.gradle 文件中写了 commons 模块的 flatDirproject/commons/库!此外,project/commons/libs/ 中包含的所有 jar 库都在构建期间找到,没有任何问题。

这个问题的根源是什么?

以下是我的 build.gradle 文件(为简洁起见,删除了一些代码,如依赖项声明):

project/settings.gradle:

include ':ScrollApplication', ':commons'

项目/build.gradle:

buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.0.0-rc1'
}
}

项目/commons/build.gradle:

apply plugin: 'com.android.library'

repositories {
maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' }
mavenCentral()

flatDir {
dirs "libs"
}
}

android {
compileSdkVersion 21
buildToolsVersion "21.1.1"

defaultConfig {
minSdkVersion 14
targetSdkVersion 21
versionCode 1
versionName "1.0"
}

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])

compile(name:'socialauth-android', ext:'aar')
}

项目/app/build.gradle:

apply plugin: 'com.android.application'

repositories {
maven { url "http://dl.bintray.com/populov/maven" }
maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' }

mavenCentral()

flatDir {
dirs "../libraries"
}
}

configurations {
apt
}

android {
compileSdkVersion 21
buildToolsVersion "21.1.1"

defaultConfig {
minSdkVersion 14
targetSdkVersion 21
}

lintOptions {
abortOnError false
}
}

dependencies {
compile project(':commons')

compile fileTree(dir: '../libraries', include: ['*.jar'])
}

更新:添加了项目结构

├── build.gradle
├── commons
│   ├── build.gradle
│   ├── libs
│   ├── proguard-rules.pro
│   └── src
│   ├── androidTest
│   │   └── java
│   └── main
│   ├── AndroidManifest.xml
│   ├── assets
│   ├── java
│   └── res
├── gradle
│   └── wrapper
├── libraries
│   ├── aws-android-sdk-1.7.1.1-core.jar
│   ├── aws-android-sdk-1.7.1.1-s3.jar
│   ├── libGoogleAnalyticsServices.jar
│   └── supertooltips-3.0.1.aar
├── scrollandroid-hg.iml
├── ScrollApplication
│   ├── build.gradle
│   ├── proguard.cfg
│   ├── ScrollApplication.iml
│   └── src
│   └── main
│   ├── AndroidManifest.xml
│   ├── assets
│   ├── java
│   └── res
├── settings.gradle
└── stacktrace.txt

最佳答案

看起来 commons 库正在正确构建(您可以单独编译它来验证吗?)但应用程序不是。 Gradle 有一些处理传递依赖项(嵌套在其他依赖项中的依赖项)的特殊规则,这些规则存在于 commons 依赖于 socialauth-android

尝试在“project/app/build.gradle”中的“flatDir”属性中添加一个额外的目录

flatDir {
dirs "../libraries", "../commons/libs"
}

关于android - 无法在库模块中使用本地 .aar 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27172413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com