文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android打包编译shrinkResources true报错解决方案

2022-06-06 13:19

关注

本文章分析解决在android打包编译时,配置了shrinkResources为true移除无用资源时打包报错的解决方案

1 Android 打包失败

Android 项目打包或者在 flutter项目中打包 apk 打包失败,异常日志如下

         
* What went wrong:                                                      
A problem occurred evaluating root project 'android'.                   
> A problem occurred configuring project ':app'.                        
   > Removing unused resources requires unused code shrinking to be turned on. See http://d.android.com/r/tools/shrink-resources.html for more information.
* Try:                                                                  
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
2 解决方案

在android 项目目录下的 build.gradle 文件中配置

        release {
            signingConfig signingConfigs.app_key
            ////是否对代码进行混淆
            minifyEnabled false
            // A problem occurred configuring project ':app'. minifyEnabled 与 shrinkResources 搭配使用
            shrinkResources false
            //指定混淆的规则文件
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }

或者

        release {
            signingConfig signingConfigs.app_key
            ////是否对代码进行混淆
            minifyEnabled true
            // A problem occurred configuring project ':app'. minifyEnabled 与 shrinkResources 搭配使用
            shrinkResources true
            //指定混淆的规则文件
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }

就是说 如果我们需要移除项目无用资源,就必须同时打开混淆配置。

4 Android打包设置shrinkResources true引发的问题分析

当配置 shrinkResources 的值为 true 时,gradle 在打包编译的时候会将未引用的例如图片等资源文件移除。
那么常见的一个问题就是例如聊天或者论坛中使用到的表情等解析,因为这一类的表情图片是根据聊天信息中的标识匹配显示的,而且是动态获取资源id,在打包时示引用,会被当作无用资源移除,造成的结果就是无法解析显示表情图片

5 解决方案

保留使用到的图片,使用是并没有在程序中引用,在打包时也开启了 shrinkResources 的值为 true 移除无用资源,可做如下配置

在raw下配置keep.xml文件


例如上述配置中,保留 mipmap 目录下的未引用的图片 ic_share_icon.png 、ic_like_icon.png

完毕


作者:早起的年轻人


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯