Resource and asset merger: Duplicate resources - RN

2024-02-27 05:32

本文主要是介绍Resource and asset merger: Duplicate resources - RN,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一波未平一波又起,使用 ReactNative 开发的项目迭代过程中集成了 react-native-image-picker 类库后苹果端运转还算相对稳定,注意添加两端的功能访问的系统权限后正常调用方法实现业务逻辑即可;
因之前一直使用苹果端 iPad 开发调试,后打包 ipa 包也很顺利,但在打包安卓端 apk 的时候遇到了重重问题 。。。
先是 index.android.bundle is packaged correctly for release 的问题,抛出了如下异常:

Unable to load script. Make sure you're either running a Metro server (run 'react-native start') or that your bundle 'index.android.bundle' is packaged correctly for release.

其次,调试好后再次尝试打包 debug 的时候顺利安装至安卓 pad(注:此处分别尝试了三星 pad 和小米 pad 均正常运行,系统版本是 4.4.4 KTU84P 和 6.0.1)但是尝试打包 release 的时候却 gg 抛出了如下异常:

Resource and asset merger: Duplicate resources

大致问题是项目中资源文件重复导致打包异常,再 debug 之前 index.android.bundle is packaged correctly for release 该异常的时候执行了如下命令:

react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res

之后安卓项目工程中 build 生成了很多的资源文件,同时也包含了如上图中文件夹中的资源图片。

 

解决办法

首先,清除了 mipmap 中除程序 icon 图片之外的资源文件;
其次,定位到 ReactNative 项目工程中 node_modules 下的 node_modules/react-native/react.gradle 文件中,在 doFirst 代码块下添加 doLast 代码块,具体代码 code 如下:

   doLast {def moveFunc = { resSuffix ->File originalDir = file("$buildDir/generated/res/react/release/drawable-${resSuffix}");if (originalDir.exists()) {File destDir = file("$buildDir/../src/main/res/drawable-${resSuffix}");ant.move(file: originalDir, tofile: destDir);}}moveFunc.curry("ldpi").call()moveFunc.curry("mdpi").call()moveFunc.curry("hdpi").call()moveFunc.curry("xhdpi").call()moveFunc.curry("xxhdpi").call()moveFunc.curry("xxxhdpi").call()}

再其次,清除安卓项目中之前的打包缓存,打开安卓 Android Studio 导航栏中选择 build 下的 clean project
最后,再次通过 ReactNative 命令执行打包操作,cd 到 android 目录执行打包命令即可。

cd android
./gradlew assembleRelease

以上便是此次分享的全部内容,希望能对大家有所帮助!

这篇关于Resource and asset merger: Duplicate resources - RN的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/751349

相关文章

java读取resource/通过文件名获取文件类型

java读取resource java读取resource目录下文件的方法: 借助Guava库的Resource类 Resources.getResource("test.txt") 通过文件名获取文件类型 mongodb java

访问controller404:The origin server did not find a current representation for the target resource

ider build->rebuild project。Rebuild:对选定的目标(Project),进行强制性编译,不管目标是否是被修改过。由于 Rebuild 的目标只有 Project,所以 Rebuild 每次花的时间会比较长。 参考:资料

mybatis错误——java.io.IOException Could not find resource comxxxxxxMapper.xml

在学习Mybatis的时候,参考网上的教程进行简单demo的搭建,配置的没有问题,然后出现了下面的错误! Exception in thread "main" java.lang.RuntimeException: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause:

spring使用@Resource 注入map

spring使用@Resource 注入map 注入多个Service: /*** 单笔付款状态 MQ消费** @author zkg* @since 2024-09-06 16:11:19*/@Slf4j@Component@RocketMQMessageListener(topic = PayGlobalConstants.PAY_APPL_SINGLE_TOPIC, consume

duplicate symbol _OBJC_IVAR

今天该死的SVN又TMD出问题,update之后出现了下面这种问题: duplicate symbol _OBJC_IVAR_$_BDConversationCell._userNameLabel in: 某路径 该错误是一种链接错误,令人头疼的是Xcode不会直接定位到问题具体位置。 但其仍有一定的规律,大概是以下原因:   1.检查是否误导入了问题中类的 .m 文件; 报错:

Vue跨域问题、Vue配置开发环境代理服务、集成Axios发送Ajax请求、集成vue-resource发送Ajax请求

目录 1. Ajax请求服务介绍2. axios的安装3. Vue跨域问题介绍和解决方案4. 使用vue-cli配置开发环境代理服务4.1 简单配置4.2 复杂配置4.3 二次封装 5. 集成vue-resource发送Ajax请求 1. Ajax请求服务介绍 xhr: new XHLHttpRequest().open()/send()。偏向底层JQuery: 对xhr进行了封

关于No resource found that matches the given name 'Theme.AppCompat.Light' No resource found that ma

关于No resource found that matches the given name  'Theme.AppCompat.Light' No resource found that matches the given name   'android:Widget.Material.ActionButton.CloseMode'. 我的上一遍文章 http://blog.csdn.net

Spark动态资源分配-Dynamic Resource Allocation

关键字:spark、资源分配、dynamic resource allocation Spark中,所谓资源单位一般指的是executors,和Yarn中的Containers一样,在Spark On Yarn模式下,通常使用–num-executors来指定Application使用的executors数量,而–executor-memory和–executor-cores分别用来指定每个ex

CUICatalog: Invalid asset name supplied: (null), or invalid scale factor: 2.000000错误解决方案

[[UIImage imageNamed:@""] 当后面的字符串为空时,会出现题目中的错误 if (imagstr != nil) {         cell.imageView.image =[UIImage imageNamed:imagstr];     }

eclipse maven工程中src/main/resources目录下创建的文件夹是包图标的解决方法

转载:https://blog.csdn.net/luwei42768/article/details/72268246 如图:在src/main/resources目录下创建的文件夹却以包的图标显示 修改方法: 入下图,按顺序1 ,2,3,4操作,把3处remove,在4处添加** 修改后如下: 然后点击完成后,文件夹图标显示正常了