Android 调试模式正常,但发布模式错误?

Android 调试模式正常,但发布模式错误?,android,debugging,release,Android,Debugging,Release,我的应用程序经过编译,在调试模式下运行良好。但在发布模式下,编译屏幕图像时会出现如下错误 按需配置是一种孵化特性。NDK缺少一个 “平台”目录。如果您正在使用NDK,请验证是否设置了NDK.dir 到有效的NDK目录。它当前设置为 C:\Users\pel\AppData\Local\Android\Sdk\ndk包。如果你不是 使用NDK,从ANDROID\u NDK\u HOME或 local.properties以删除此警告 在查找时找不到google-services.json [src

我的应用程序经过编译,在调试模式下运行良好。但在发布模式下,编译屏幕图像时会出现如下错误

按需配置是一种孵化特性。NDK缺少一个 “平台”目录。如果您正在使用NDK,请验证是否设置了NDK.dir 到有效的NDK目录。它当前设置为 C:\Users\pel\AppData\Local\Android\Sdk\ndk包。如果你不是 使用NDK,从ANDROID\u NDK\u HOME或 local.properties以删除此警告

在查找时找不到google-services.json [src/nullnull/debug,src/debug/nullnull,src/nullnull,src/debug, src/NullDebug]registerResGeneratingTask已弃用,请使用 找不到registerGeneratedResFolders(FileCollection) google-services.json在[src/nullnull/release]中查找时, src/release/nullnull,src/nullnull,src/release,src/nullrelease] registerResGeneratingTask已弃用,请使用 registerGeneratedResFolders(FileCollection):应用程序:预构建最新 :app:prerelease生成最新:app:compileReleaseAidl最新 :app:compileReleaseRenderscript最新:app:CheckReleaseMifest 最新:应用程序:generateReleaseBuildConfig最新 :app:prepareLitjar最新:app:mainApkListPersistenceRelease 最新:应用程序:generateReleaseResValues最新 :app:generaterereaseresources最新 :app:processReleaseGoogleServices解析json文件: D:\stat\PROJELER\ANDROIDPROJELER\egiticoyunlar\app\google-services.json :app:mergeReleaseResources D:\pel\PROJELER\ANDROIDPROJELER\egiticoyunlar\app\src\main\res\drawable\ic\u stat\u ic\u notification.png: 错误:读取PNG签名失败:文件不以PNG开头 签名。错误:java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.AAPT2异常:AAPT2错误: 检查日志以了解详细信息:应用程序:mergeReleaseResources失败

tldr:
路径“D:\pel\PROJELER\ANDROIDPROJELER\egiticoyunlar”处的PNG文件\ app\src\main\res\drawable\ic\u stat\u ic\u notification.png“已损坏。确保使用有效的PNG文件

原因:
调试和发布模式之间的差异来自于每个构建的不同需求。调试构建需要更快,因为它们经常执行。发布版本需要生成优化(更小)的APK,因为这是将交付给用户的产品。

这就是为什么在调试版本中禁用PNG压缩(如果可能,压缩图像文件),但在发布版本中启用的原因。PNG压缩将彻底检查文件的内容,因此,如果文件有问题,将在发布版本中引发错误。

在调试构建期间,禁用PNG压缩。PNG仍在编译(处理),但未优化,因此并非所有内容都能像在发布版本中一样被捕获。

如果您愿意,您也可以为调试构建启用PNG压缩,但我不建议这样做,因为它会极大地影响构建时间(资源处理速度会降低30%)。类似地,您可以为发布版本禁用PNG压缩,但这反过来会使APK变得越来越大,我也强烈反对这样做。

android {
    buildTypes {
        release {
            // Disables PNG crunching for the release build type. Don't do this.
            crunchPngs false
        }
        debug {
            // Enabled PNG crunching for the debug build type. Don't do this.
            crunchPngs true
        }
    }
}

我在主目录中创建了一个名为“debug”和“release”的二进制文件。我将“google services.json”文件放入其中,编译过程中没有错误。

请复制并粘贴错误日志,而不是屏幕截图。这些日志没有用,您是否看到带有
/ab
的图标?单击它并重新读取日志该错误告诉您要做什么您想要logcat内容。我不知道我到底在读什么错误:java.util.concurrent.ExecutionException:com.android.builder.internal.aapt.v2.Aapt2Exception:AAPT2错误:检查日志以了解详细信息可能重复的