Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用Android Gradle插件3.0.0+;操纵变量输出;?_Java_Android_Gradle_Android Gradle Plugin_Gradle Plugin - Fatal编程技术网

Java 如何使用Android Gradle插件3.0.0+;操纵变量输出;?

Java 如何使用Android Gradle插件3.0.0+;操纵变量输出;?,java,android,gradle,android-gradle-plugin,gradle-plugin,Java,Android,Gradle,Android Gradle Plugin,Gradle Plugin,Gradle的Android插件的最新版本(3.0.0)已经破坏了其操作API。此API用于在构建期间操作创建的文件(如AndroidManifest.xml),并已被删除以缩短配置时间 有哪些新的API可用于操作变量输出,以及它们与2.X API有何不同?对outputFiles的更改现在已记录在上 从本质上讲,建议不要直接从GradleAPI访问outputFile,而是访问包含该文件的目录。下面的代码段用清单文件演示了这一点,但也可以应用于其他OutputFile android.appl

Gradle的Android插件的最新版本(3.0.0)已经破坏了其操作API。此API用于在构建期间操作创建的文件(如AndroidManifest.xml),并已被删除以缩短配置时间


有哪些新的API可用于操作变量输出,以及它们与2.X API有何不同?

对outputFiles的更改现在已记录在上

从本质上讲,建议不要直接从GradleAPI访问outputFile,而是访问包含该文件的目录。下面的代码段用清单文件演示了这一点,但也可以应用于其他OutputFile

android.applicationVariants.all { variant ->
    variant.outputs.all { output ->
        output.processManifest.doLast {

            String manifestPath = "$manifestOutputDirectory/AndroidManifest.xml"
            def manifestContent = file(manifestPath).getText()

            // Manipulate the file as needed
        }
    }
}

看起来他们又改变了这个界面。(android gradle插件3.3+或gradle 5.4+)

我正在使用以下内容检索manifestPath:

def manifestPath = "${manifestOutputDirectory.get().asFile}/AndroidManifest.xml"
我是从

正在获取路径中包含以下内容的
java.io.FileNotFoundException

property(interface org.gradle.api.file.Directory, fixed(class org.gradle.api.internal.file.DefaultFilePropertyFactory$FixedDirectory, /Users/me/app/build/intermediates/merged_manifests/debug))

您特别感兴趣的是什么操作?我特别感兴趣的是如何操作outputFiles,因为在配置阶段,不再保证这些输出文件可用于各种任务。如果这个API有任何其他实质性的变化,那么我觉得这应该得到一个规范性的答案。我不能给出一个规范性的答案,你会喜欢一个工作示例吗?我正准备将我的gradle 4 android项目设置为生成一个带有自定义名称的输出apk,这是您需要的吗?不,据我所知,仍然可以使用与2.x插件相同的语法重命名apk。这个问题的重点是操作与ouputFiles(例如AndroidManifest,mapping.txt)相关的Google IssueTracker票证:这不再有效(com.android.tools.build:gradle:3.4.0),请更新版本3.3,您应该使用以下代码: