Direct local .aar file dependencies are not supported when building an AAR
时间: 2023-11-29 22:42:46 浏览: 44
这个错误通常是由于在构建 AAR 时使用了本地 .aar 文件依赖项而导致的。这是因为 AAR 文件本身就是一种 Android 库,它包含了所有的依赖项,因此不支持使用其他的 AAR 文件作为依赖项。
解决这个问题的方法是将本地 .aar 文件转换为 Maven 或 Gradle 依赖项,然后将其添加到项目的 build.gradle 文件中。具体步骤如下:
1. 将本地 .aar 文件复制到项目的 libs 目录下。
2. 在项目的 build.gradle 文件中添加以下代码:
```
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
implementation(name: 'your-aar-file-name-without-extension', ext: 'aar')
}
```
3. 同步 Gradle 以使更改生效。
相关问题
Direct local .aar file dependencies are not supported when building an AAR.
Direct local .aar file dependencies are not supported when building an AAR. 这个错误是由于使用直接引用本地的 .aar 文件时导致的。高版本的 Android Gradle Plugin 不再支持这种直接依赖方式,因为这样会破坏生成的 AAR 文件,导致其中的类和 Android 资源无法正确打包进 AAR 文件中。
为了解决这个问题,可以按照以下步骤进行操作:
1. 将 library 模块中的依赖方式改为 `compileOnly fileTree(…)`。具体代码如下:
```
compileOnly fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
```
2. 将主工程中的 AAR 依赖方式改为 `implementation fileTree(…)`。具体代码如下(示例):
```
implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
```
3. 将 library 模块中的 `libs` 目录下的 .aar 文件复制一份到主工程的 `libs` 目录下[2]。
然后重新编译项目,这样就可以解决这个问题了。这种解决方式可以在编译时让编译器通过而不报错,并且在打包后可以正常调用相关的程序。
总结起来,这个问题是由于环境版本变化所导致的。高版本的 Android Gradle Plugin 不再支持直接引用本地 .aar 文件的方式,因此我们需要通过上述的解决步骤来处理这个问题。这样做可以确保在生成 AAR 文件时不会破坏其中的类和 Android 资源,并且能够正常使用。
需要注意的是,高版本的 Android Studio 在创建新模块时可能没有 "Import .JAR/.AAR Package" 选项可用。
希望这个解答对你有帮助!如果还有其他问题,请随时提问。
flutter 执行 build 报错:Direct local .aar file dependencies are not supported when building an AAR. The resulting AAR would be broken
直接本地的 .aar 文件依赖项不支持构建 AAR。由于任何本地 .aar 文件依赖项的类和 Android 资源不会打包在生成的 AAR 中,因此生成的 AAR 将无法使用。在这种情况下,Android Gradle 插件的早期版本也会生成损坏的 AAR(尽管不会抛出此错误)。如果您的 Flutter 项目中使用了本地的 .aar 文件依赖项,那么您需要将其转换为 Maven 依赖项,或者将其打包为本地 Maven 存储库中的库。您可以使用以下步骤解决此问题:
1. 将本地的 .aar 文件依赖项转换为 Maven 依赖项。您可以使用以下命令将其转换为 Maven 依赖项:
```
./gradlew :<module-name>:uploadArchives
```
然后,您可以在项目的 build.gradle 文件中添加以下 Maven 依赖项:
```
repositories {
mavenLocal()
// other repositories
}
dependencies {
implementation '<group-id>:<artifact-id>:<version>'
// other dependencies
}
```
2. 将本地的 .aar 文件依赖项打包为本地 Maven 存储库中的库。您可以使用以下步骤将其打包为本地 Maven 存储库中的库:
a. 在项目的 build.gradle 文件中添加以下 Maven 存储库:
```
repositories {
mavenLocal()
// other repositories
}
```
b. 在本地 Maven 存储库中创建一个新的目录,并将 .aar 文件复制到该目录中。
c. 在 .aar 文件所在的目录中创建一个新的 build.gradle 文件,并添加以下内容:
```
apply plugin: 'maven'
group = '<group-id>'
version = '<version>'
artifactId = '<artifact-id>'
repositories {
mavenLocal()
}
uploadArchives {
repositories {
mavenDeployer {
repository(url: "file://${System.properties['user.home']}/.m2/repository")
}
}
}
```
d. 在 .aar 文件所在的目录中运行以下命令:
```
./gradlew uploadArchives
```
然后,您可以在项目的 build.gradle 文件中添加以下 Maven 依赖项:
```
repositories {
mavenLocal()
// other repositories
}
dependencies {
implementation '<group-id>:<artifact-id>:<version>'
// other dependencies
}
```