flutter 执行 build 报错:Direct local .aar file dependencies are not supported when building an AAR. The resulting AAR would be broken
时间: 2023-11-29 10:44:27 浏览: 263
Flutter编译报错:The method ‘CachedNetworkImageProvider.load’ has fewer positional
直接本地的 .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
}
```
阅读全文