android-studio - android studio 3.1:build:gradle:3.1.0-设置输出文件名时不支持绝对路径

标签 android-studio android-studio-3.0

当我使用Android Studio 3.0并在project/build.gradle中使用下一版本的Android Gradle插件时:

classpath 'com.android.tools.build:gradle:3.0.1'


而且工作正常。
更新到Android Studio 3.1之后,我更新了Android Gradle插件:

classpath 'com.android.tools.build:gradle:3.1.0'


现在我的app/build.gradle中出现错误:

def releaseFileName = "${rootProject.name}_${defaultConfig.versionName}.apk"
outputFileName = new File(rootProject.projectDir.absolutePath + "/release", releaseFileName.toLowerCase())


错误:

设置输出文件名时不支持绝对路径

我需要将输出apk(app-release.apk)放在项目中的特定路径中。在文件夹MyProject/release/app-relese.apk中。我该怎么做?

最佳答案

我认为使用“ ./../../../”是不好的解决方案...我在多个项目中使用通用gradle脚本,并且希望使代码与输出目录的深度保持独立。

经过一番研究,我发现了gradle插件3.1.2的解决方案:

applicationVariants.all { variant ->
    variant.outputs.all { output ->
        def relativeRootDir = output.packageApplication.outputDirectory.toPath()
                 .relativize(rootDir.toPath()).toFile()
        output.outputFileName = new File( "$relativeRootDir/release", newOutputName)
    }
}

关于android-studio - android studio 3.1:build:gradle:3.1.0-设置输出文件名时不支持绝对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49530142/

相关文章:

java - 更新android studio 3.0.1时发现安装区有一些冲突

android - 支持从 Android N (--min-api 24) : okhttp3. Request okhttp3.Authenticator 开始

android studio 无法解析符号 LocationClient

android - 在 Android 应用程序中嵌入 YouTube 直播

android - 改变 Material 图标的颜色?

java - '使用操作系统独立路径 project.properties 找到多个文件' android 中的错误

Android Gradle 3.0 如何排除多组

android - 文件资源检查为红色,尽管 R 有效

android - 有没有办法在构建后直接附加新的 Android Profiler 来调试应用程序进程?

Android Studio 3.0 任务 : unable to merge dex 执行失败