Android Gradle升级至7.4依赖不上本模块下lib下的aar解决方案

本文描述了从旧版Gradle脚本中的build.gradle配置升级到新版setting.gradle中管理外部库依赖的方式,重点介绍了如何在新结构中使用`flatDir`配置文件夹来包含子项目中的libs目录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前写法是在跟目录下的build.gradle目录下这样写


allprojects {
    repositories {
    	......
        flatDir {
            dirs 'libs'
        }
        ......
    }
}

升级后是在跟目录下的setting.gradle目录下这样写

include(":xxx").
project(":xxx").projectDir = file("xxx")
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {

        ....
        
        flatDir {
            val projectFiles = LinkedHashSet<File>()
            rootProject.children.forEach {
                projectFiles.add(File("${it.projectDir}/libs"))
            }
            dirs = projectFiles
        }

       .....
    }
}
include ":xxx"
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {

    	....

        flatDir {
            LinkedHashSet<File> projectFiles = new LinkedHashSet<File>()
            Set<ProjectDescriptor> descriptors = rootProject.children
            for (ProjectDescriptor descriptor: descriptors){
                projectFiles.add(new File("${descriptor.projectDir}/libs"))
            }
            dirs = projectFiles
        }

    	....
    }
}
plugins { id 'com.android.library' id 'com.google.protobuf' version '0.8.17' } android { namespace 'gwm.dvr.sentryservice' compileSdk 33 defaultConfig { minSdk 28 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" consumerProguardFiles "consumer-rules.pro" externalNativeBuild { cmake { cppFlags "" } } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } externalNativeBuild { cmake { path "src/main/cpp/CMakeLists.txt" version "3.22.1" } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } protobuf { //配置 protoc 编译器 protoc { artifact = 'com.google.protobuf:protoc:3.5.1' } //配置生成目录,编译后会在 build 的目录下生成对应的java文件 generateProtoTasks { all().each { task -> task.builtins { remove java } task.builtins { java {} } } } } dependencies { implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.8.0' implementation 'com.beantechs.fdbus:BeanFdbusSdk:1.0.3@aar' implementation 'com.google.protobuf:protobuf-java:3.5.1' implementation 'com.google.protobuf:protobuf-java-util:3.5.1' implementation 'com.google.protobuf:protoc:3.5.1' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.5' androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' } 这个build.gradle文件在gradle编译的时候报错:
03-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值