簡單說下遇到的問題:
主模塊app 依賴子模塊 lib_ffmpeg, 子模塊lib_ffmpeg 依賴一個aar: baidu-sdk.aar. 但是在編譯時 gradle 始終提示:cound not find baidu-sdk.aar. 可我在lib_ffmepg的build.gradle文件里已添加:
implementation(name: 'baidu-sdk', ext: 'aar')
解決辦法
1. 找到項目級別的build.gradle, 添加紅字部分:
// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { maven { url 'https://maven.aliyun.com/repository/public' } maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/jcenter' } maven { url 'https://maven.aliyun.com/repository/central' } maven { url 'https://maven.aliyun.com/repository/gradle-plugin' } } dependencies { classpath 'com.android.tools.build:gradle:7.0.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { maven { url 'https://maven.aliyun.com/repository/public' } maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/jcenter' } maven { url 'https://maven.aliyun.com/repository/central' } maven { url 'https://maven.aliyun.com/repository/gradle-plugin' } flatDir { dirs project(':lib_ffmpeg').file('libs') // 我的aar文件已放置到 lib_ffmpeg 模塊的libs目錄下 } } } task clean(type: Delete) { delete rootProject.buildDir }
2. 找到 lib_ffmepg的build.gradle文件,刪除(如果之前已添加):
implementation(name: 'baidu-sdk', ext: 'aar')
因為上述gradle文件里已指定:
implementation fileTree(dir: 'libs', include: ['*.aar', '*.jar'], exclude: [])
完成上述兩步后,重新sync下項目就好了。第二步如果不做的話可能會報 Duplicate class 的錯誤。
參考鏈接:
1. 疑難雜症(一)集成優酷sdk[aar] library Module 依賴,找不到aar[Could not find :YoukuPlayerOpenSDK-release:.]
2. Android Studio多Module使用 aar 依賴包 丟包解決