博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
react native中一次错误排查 Error:Error: Duplicate resources
阅读量:6987 次
发布时间:2019-06-27

本文共 1668 字,大约阅读时间需要 5 分钟。

最近一直在使用react native中,遇到了很多的坑,同时也学习到了一些移动端的开发经验。

今天在做一个打包的测试时,遇到了一个问题,打包过程中报错“Error:Error: Duplicate resources”,什么意思呢,就是打包资源有重复,后来查看了一下,发现打包到android/app/src目录下的静态文件重名了。

重现步骤:

1:通过vscode打开项目,运行打包命令

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

2:

cd android && ./gradlew assembleRelease

 

查看android/app/src/mian/res/drawable目录下静态资源图片文件名重复

 

解决方案

1:打开node_modules/react-native/react.gradle文件,在doFirst块下添加doLast块

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()}

2:打开node_modules/react-native/local-cli/bundle/assetPathUtils.js文件,修改getAndroidAssetSuffix函数方法如下

function getAndroidAssetSuffix(scale: number): string {  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';  }  throw new Error('no such scale');}

3:删除android/app/src/main/res/drawable-**目录下面打包进去的静态资源文件(文件名会比较长)

4:如果采用android studio进行打包,点击build下clean project,清除打包缓存

5:重新执行打包命令即可打包成功。

 

参考资料:

1:

2:

 

转载于:https://www.cnblogs.com/sk-3/p/10720933.html

你可能感兴趣的文章
HTTP协议详解(真的很经典)
查看>>
(转)什么是云计算
查看>>
新书推荐:细说PHP(含样章试读)
查看>>
shell常识总结
查看>>
大道至简,职场上做人做事做管理
查看>>
make 参数定义
查看>>
java从字符串中提取数字
查看>>
Android深入浅出系列之服务机制—1.Android中的Service
查看>>
MVC、MVP以及Model2[上篇]
查看>>
数据库隐式类型转换
查看>>
分享5个主流的HTML5开发工具
查看>>
基于Ionic2的开源项目
查看>>
分析Linux内核创建一个新进程的过程【转】
查看>>
周锦民:腾讯在线教育视频互动直播间技术实践
查看>>
[转]UML类图、关系及其JAVA代码
查看>>
PhotoShop算法原理解析系列 - 像素化---》碎片。
查看>>
设计模式之责任链模式
查看>>
php多态设计
查看>>
CSS格式化 CSS代码压缩工具
查看>>
mvc伪静态<三> IIS配置
查看>>