react-native打包android apk,资源编译报错的问题

react-native在打包apk时,可能会遇到图片资源编译报错的情况,如下:
android\app\build\intermediates\res\merged\release\drawable-hdpi-v4\node_modules_reactnavigationstack_dist_views_assets_backicon.png:
 error: uncompiled PNG file passed as argument. Must be compiled first into .flat file..
 
接下来说一声个人的几种解决方案,仅供参考:
1.直接尝试替换此图片资源,有时候出现这个问题往往是图片资源的格式在AS上编译校验不通过的原因;


2.在gradle.properties文件中添加 android.enableAapt2=false


3.在build.gradle文件中添加
    android {

        //添加这两行
        aaptOptions.cruncherEnabled = false
        aaptOptions.useNewCruncher = false
    }


4.更改assetPathUtil.js文件代码:(文件路径是 node_modules\react-native\local-cli\bundle\assetPathUtils.js)
之前:

function getAndroidAssetSuffix(scale: number): string {
   switch (scale) {
     case 0.75: return 'ldpi';
     case 1: return 'mdpi';
     case 1.5: return 'hdpi';
     case 2: return 'xhdpi';
     case 3: return 'xxhdpi';
     case 4: return 'xxxhdpi';
   }
   throw new Error('no such scale');
}
改后:


function getAndroidAssetSuffix(scale) {
   switch (scale) {
      case 0.75: return 'ldpi-v4';
      case 1: return 'mdpi-v4';
      case 1.5: return 'hdpi-v4';
      case 2: return 'xhdpi-v4';
      case 3: return 'xxhdpi-v4';
      case 4: return 'xxxhdpi-v4';
   }
}
然后重新打bundle包,重新编译打release包。
希望以上对你有所帮助~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值