微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android Studio 4.2 开始在发布版本中重命名 APK 内的资源

如何解决Android Studio 4.2 开始在发布版本中重命名 APK 内的资源

最近我从 4.1.3 更新到 Android Studio 4.2.1,在发布模式下构建时,发现 APK 中 res/ 文件夹下的所有内容都已重命名(我可以称之为“混淆”吗?)。

在调试中它与旧版本相同。我使用带有 gradlew assembleRelease 的控制台构建。

我没有发现为什么会发生这种情况的变更日志或官方消息。尝试通过在 app/build.gradle 中添加 shrinkResources false 并使用 res/raw/keep.xml 来禁用它。即使 minifyEnabled false 资源被重命名

当我将 apk 安装到设备上时,我的所有图标和图像似乎都像以前一样显示,但我的应用分发 Web 工具无法再显示应用图标。

有没有人有同样的经历并且知道如何在发布版本中关闭它?

解决方法

该行为从 Android Gradle Plugin 4.2 开始默认启用,可以通过将 android.enableResourceOptimizations=false 添加到 gradle.properties 文件来禁用。

请参阅 https://github.com/godotengine/godot/pull/50665 以供参考。

,

我相信这是设计使然。

如果您更新了 Android Gradle 插件以及 IDE 本身,新版本会为每个模块创建唯一的资源命名空间。

假设您在某个布局中使用了 id R.id.some_id - 但在同一个布局中,您导入了某个库的另一个布局,使用相同的 id R.id.some_id,您将不再有 冲突,因为来自外部库的 id 将被重命名为该库唯一的名称(您的布局和外部布局实际上将有 2 个不同的 id)。我将搜索参考资料,然后更新此答案。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。