当前位置: 首页 > 知识库问答 >
问题:

将Android Studio的Gradle插件升级到3.0.1和Gradle升级到4.1后,无法复制配置依赖项

弘焕
2023-03-14

我曾经使用这个简单的gradle任务将“compile”依赖项复制到一个特定的文件夹:

task copyLibs(type: Copy) {
    from configurations.compile
    into "$project.rootDir/reports/libs/"
}

但是在我的Android项目升级到4.1之后,它就停止工作了,这个项目使用的是Android Studio的gradle插件3.0.1和gradle工具。由于https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html#new_configurations现在不推荐使用依赖项配置'compile',我将其更改为'implementation'。但是,我不能使用我的copyLibs任务,因为根据Gradle构建错误输出,直接解析配置“implementation”是不允许的:

$ ./gradlew.bat clean build

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine the dependencies of task ':app:copyLibs'.
> Resolving configuration 'implementation' directly is not allowed

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

* Get more help at https://help.gradle.org

BUILD FAILED in 1s
android {
    compileSdkVersion 26
    defaultConfig {
        applicationId "newgradle.com.testingnewgradle"
        minSdkVersion 21
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support:support-v4:26.1.0'
    implementation 'com.android.support:design:26.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}

task copyLibs(type: Copy) {
    from configurations.implementation
    into "$project.rootDir/reports/libs/"
}
build.dependsOn copyLibs

如果我使用'compile'它的工作,但我希望符合最新的建议,这个插件的用法。

我需要帮助来升级我的copyLibs任务,以便像升级我的环境之前一样工作。我使用的是Android Studio的gradle插件2.2.3和gradle工具2.14.1。

共有1个答案

索和璧
2023-03-14

不使用Configurations.implementation,最好的选择是使用:Configurations.runtimeClasspath

您还可以考虑:compileClasspath default

 类似资料:
  • 这些依赖关系用列在一个依赖项下,这个依赖项是我们的jar库,仍然是用gradle 5.1.1构建的 我们的库存储在一个S3桶中,我们使用shadowjar来生成结束Jar。 例如: 不幸的是,我不能创建一个真正的复制程序,因为这些库是我工作的公司的真正代码。 谢谢和问候,伊多

  • 分级项目同步失败,未从其他相关问题中获得答案。以下是我的详细情况。 初始同步尝试产生以下错误消息: 我有Android Studio 3.0。build.gradle文件包含以下依赖项: 根据https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html#update_gradle我需要做一些改变 首先,在

  • 在Android Studio的提示下,我将我项目的Android Gradle插件从4.2.0-beta02升级到4.2.0-beta03。现在,每次同步构建文件时,都会出现以下构建错误: 此错误以前没有显示。下面是生成错误的模块的构建文件: 那么,这是最新AGP版本的一个bug,还是我的构建文件有什么问题,以前被忽略了,但现在被标记了?(我试着注释掉块的整个主体,但错误依然存在。我还试着使缓存

  • 当我尝试升级到android gradle插件V3.2时。1编译SDK 28,我在Mac OS上的buildserver(debian)上得到下面的错误/堆栈跟踪,这很好。 旧的工作配置: classpath'com。Android工具。构建:gradle:3.1。4' 编译DK27版 buildToolsVersion'28.0。2' gradle包装器4.6 新的破碎配置 类路径com.and

  • 我升级了我的AS,错误开始出现 我找了所有的地方,但我不能解决问题 这是我的构建。gradle(项目),脱机是未检查的,我做了无效和重启没有工作, 什么意思不能解决依赖?这是我在gradle(应用程序)中添加存储库时得到的结果

  • 我最近下载了Android Studio Bumblebee,它很有帮助地问我是否想升级到Android Gradle Plugin 7.1.0,该版本与Android Studio Bumblebee一起发布。 升级后,我遇到一个生成错误: 看看文件,我看到: 这意味着我无法运行我的应用程序,我需要降低AGP 7.0的级别,以使其恢复工作。我如何修复这个问题并升级到Android Gradle插