前言
-
我的RN版本为:0.64
参考
keytool 错误: java.io.FileNotFoundException: MyAndroidKey.keystore (拒绝访问).
Android 关于arm64-v8a、armeabi-v7a、armeabi、x86下的so文件兼容问题
- Warning: JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore d:/my-release-key.keystore -destkeystore d:/my-release-key.keystore -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。
打包命令
# 生成密钥
.\keytool -genkeypair -v -keystore c:/my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
cd android
./gradlew assembleRelease --stacktrace -info
# 清除缓存
./gradlew clean
# 构建bundle
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/
--verbose
错误1:Error: Duplicate resources
错误描述
-
我这边遇到的引发这个错误的原因是,因为静态资源的重复。
解决方式
-
我自己是直接删除了所有重复的文件就好了。具体的解决方案还是建议你看这篇国外大佬起的帖子:stackoverflow.com/questions/5… 我仅保留了以下内容:
错误2:java.lang.OutOfMemoryError:GC overhead limit exceeded
错误描述
- 通过百度得知:大概时关于内存堆栈大小,印象到垃圾回收机制的一个配置。
引发这个错误的原因
-
现目前,我是有遇到一下2个因素导致这个问题出现。
-
第一个:在页面中使用了计时器,确没有在
componentWillUnmount
中卸载计时器。会导致打包失败,就算侥幸打包成功,程序也极有可能出现闪退等莫名其妙的错误。RN官方文档定时器参考 -
第二个:默认的JVM设置无法满足需求,直接导致打包失败。直接修改
gradle.properties
中关于jvm的配置就好了。