Android12新特性——google()maven()等第三方添加

Android12中第三方库的添加

添加第三方库错误提示:

Caused by: org.gradle.api.InvalidUserCodeException: Build was configured to prefer settings repositories over project repositories but repository 'Google' was added by build file 'build.gradle'
	at org.gradle.internal.management.DefaultDependencyResolutionManagement.repoMutationDisallowedOnProject(DefaultDependencyResolutionManagement.java:201)
	at org.gradle.internal.ImmutableActionSet$SetWithFewActions.execute(ImmutableActionSet.java:285)
	at org.gradle.api.internal.DefaultDomainObjectCollection.doAdd(DefaultDomainObjectCollection.java:264)
	at org.gradle.api.internal.DefaultNamedDomainObjectCollection.doAdd(DefaultNamedDomainObjectCollection.java
### 如何在 Android 项目中集成和使用第三方库 #### 集成方式概述 为了简化开发流程并增强应用程序的功能,可以利用多种方法将第三方库引入到 Android 项目当中。通常情况下,这些库会通过 Gradle 构建系统被添加进来。 #### 使用 Maven 或 JCenter 添加依赖项 对于大多数 Java/Kotlin 编写的库来说,在项目的 `build.gradle` 文件内指定远程仓库是最常见的做法之一。这涉及到编辑顶级 build 脚本以包含必要的存储库声明[^4]: ```groovy allprojects { repositories { google() mavenCentral() // 替代 jcenter(), 推荐使用更稳定的源 } } ``` 接着可以在模块级别的 `build.gradle` 中定义具体想要使用的库版本号及其坐标: ```groovy dependencies { implementation 'com.example.library:artifact-id:version' } ``` #### 动态链接 .so 文件 (NDK) 当涉及原生代码支持时,则可能需要处理 `.so` 动态链接库。这类资源一般放置于特定路径下以便编译器能够找到它们。一种常见的方式是在 app 的 `src/main/jniLibs/` 目录结构里按 ABI 分类存放不同架构对应的二进制文件[^2]: ``` app/src/main/ ├── jniLibs/ │ ├── armeabi-v7a/ │ │ └── libexample.so │ ├── arm64-v8a/ │ │ └── libexample.so ... ``` #### Flutter 插件下的 AAR / Module 导入 针对跨平台框架如 Flutter ,其内部嵌套的 Android 工程同样适用上述规则。不过有时也会遇到特殊情况——比如希望直接引用另一个独立工程作为子模块而非打包好的 AAR 。此时就需要调整设置脚本来显式指明外部项目的相对位置[^3] : ```gradle // settings.gradle include ':flutter_module_example' project(':flutter_module_example').projectDir = new File(rootProject.projectDir, '../path/to/flutter_plugin/android') ``` 以上就是几种典型的向 Android 应用程序加入额外功能包的方法概览。每种情形都有各自的特点与注意事项,实际操作前建议查阅官方文档获取最新指导方针。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值