Android Studio生成的<module> /release/output.json是什么?

我最近注意到,每当我运行Build – > Generate Signed APK... ,通过Android Studio 3 Canary 1在<module>/release/output.json处生成一个新文件,其内容如下所示。

任何人都可以确认看到这种行为? 或者是由于笔记本电脑上的某些本地configuration?

任何人都可以解释这个文件的目的? 添加到.gitignore是否安全?

 [{ "outputType": { "type": "APK" }, "apkInfo": { "type": "MAIN", "splits": [], "versionCode": 32 }, "outputFile": { "path": "/path/to/the/generated/release/filename.apk" }, "properties": { "packageId": "com.example.android", "split": "" } }] 

Solutions Collecting From Web of "Android Studio生成的<module> /release/output.json是什么?"

你不需要担心这个output.json文件。 Android studio 3.0负责这个文件。

让我给你解释一下。 对于旧版本Android工作室做的是生成一个签名的APK,并把它放在“输出”文件夹。 即使如果你有apk的多个风格维度,所有他们可能位于输出文件夹相同的目录。 从最新版本的android studio 3.0(canary and stable)他们已经组织了这个文件结构。 对于每个签名APK,每个风格维度,它将有一个单独的文件夹,其中包含一个output.json文件。 这个文件实际上只是源APK的描述。 如果你能看到你在这里分享的文件正在描述发布的APK。

ouput.json文件是您生成的APK的一种元数据文件。 这个文件是由于各种原因而产生的。 我发现其中的一些可能没有列出所有的用例,但这里是列表:

  1. 在执行Generate Signed APKGenerate Signed APK
  2. AndroidManifest.xml文件生成

     {module}/build/intermediates/manifest/androidTest/debug/ouput.json 
  3. 不是为unit testing生成的,而是仅为AndroidTests(取决于要执行的Android框架)生成的,

  4. 在上面指定位置为AndroidManifest.xml生成的文件output.json与为APK生成的文件略有不同,如前所述。
  5. 正如你所看到的, output.json文件描述的属性与我们通常在build.gradle文件中指定的属性非常相似,所以它必须被使用和需要使构build过程成功地工作(或者它可能被生成为从build.gradle成功构build和提取所需属性的build.gradle )。

在此基础上,我们可以得出结论,它肯定依赖于Android框架的生成,它与描述有关APKManifest文件的细节/信息有关。

  • 我个人曾经尝试谷歌,甚至在Android开发者网站上find一个适当的答案,但似乎没有详细logging有关此文件。

  • 我已经检查了GitHub上的几个项目和检查.gitignore文件是相同的,我找不到任何类似的output.json文件在GitHub上托pipe的任何项目。 所以在你的提交中排除它们应该是一个好习惯。

  • 简而言之,这个文件是一个描述性文件,包含有关项目的重要元数据。 这一定是有原因的。 我build议你不要惹它,因为我们不知道它会导致什么结果。

我将../../添加到outputFileName的开头,APK文件被放到output文件夹中

 android{ applicationVariants.all { variant -> variant.outputs.all { output -> output.outputFileName = "../../output_name.apk" } } }