我不确定@MuhammadKamal 的回答是否对我有用,但它可能让我走上了正确的轨道。我认为要使其正常工作,不仅需要最新的 NDK。我之前使用的是 Android Studio 4.2.1,但坚持使用旧版本的 CMake 和 NDK 并使用 Gradle Plugin 4.2.1。
为了生成调试符号,我更新了所有 build.gradle 文件,现在 android 应用程序包 (AAB) 看起来与以前不同,并且我的系统上也没有生成 native-debug-symbols.zip。
我相信自动将调试符号添加到 AAB 需要 NDK 版本 22.1.7171670。
android.ndkVersion '22.1.7171670'
而且我还切换到了更新版本的 CMake
externalNativeBuild.cmake.version "3.18.1"
:.
我现在在 Android Studio 4.2.2 中使用 Gradle Plugin 4.2.2。
在我的系统上,Gradle 在设置为“FULL”时抱怨调试符号级别设置。似乎该值必须小写。这可能是在较新的 gradle 插件版本中引入的更改:
android.buildTypes.release.ndk.debugSymbolLevel = 'full'
.
如果不是所有这些更改都使调试符号自动嵌入到 AAB 中并生成 zip 文件,我不完全确定其中的哪些更改。如果只需要更新的 NDK,请随时接受@MuhammadKamal 的回答。我想为其他人记录在我的构建中起作用的东西,以填补任何空白并可能有助于解决问题。
调试符号将存储在此位置的 AAB 中:
BUNDLE-METADATA\com.android.tools.build.debugsymbols\<ABI>\libX.dbg
严格来说,@DevDasTour 只询问了 APK 和 native-debug-symbols.zip。根据我的测试,APK 不能包含调试符号,而 ABB 可以。
如果您仍希望将 APK 和调试符号分别上传到 Google Play,请在此处生成 native-debug-symbols.zip:
<project_name>\build\outputs\native-debug-symbols\release\native-debug-symbols.zip
顺便说一句,AAB 还将包含 Java 去混淆映射,因此只需一个文件即可上传到 Google Play。