React Native应用在签名发布后崩溃。在调试模式下运行正常。

11

发布签名版本的React Native应用程序会崩溃。在调试模式下运行良好,屏幕上不会抛出任何错误信息,只是崩溃了。在查看cat log时没有错误。

我也尝试使用--info构建apk,但在崩溃时没有额外的信息。我还尝试通过设置minifyEnabled false来构建APK。

通过将手机连接到USB并在调试模式下运行该应用程序可以使其正常工作。我尝试使用--debug创建apk,但是当我使用应用程序安装器进行安装时,它会显示解析错误。

我得到了以下logcat错误。这是什么意思?

09-03 11:03:07.968 W/ActivityManager(1344):   Force finishing activity com.myapp/.MainActivity


09-03 11:03:08.012 W/BroadcastQueue(1344): Skipping deliver [background] BroadcastRecord{cb72147 u-1 android.net.conn.CONNECTIVITY_CHANGE} to ReceiverList{7bf2161 22421 com.myapp/10100/u0 remote:b9cdcc8}: process crashing

09-03 11:03:08.035 W/ActivityManager(1344):  Dismiss app error dialog : com.myapp


09-03 11:03:13.095 I/WindowState(1344): WIN DEATH: Window{3f22c22 u0 /com.myapp.MainActivity}

你尝试过在没有Chrome调试模式的情况下运行你的应用程序吗? - Xeijp
1
@Xeijp 你的意思是使用 react-native run-android --variant=release 吗?我尝试过了,但不起作用。如果我使用 react-native run-android --variant=debug,就可以正常工作。 - user43286
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - user43286
@nabn "强制结束Activitycom.myapp/.MainActivity." "跳过传递后台广播记录android.net.conn.Connectivity_changed到receverlist com.myapp /10100/u0 remote fafb552}进程崩溃"。你知道这是什么意思吗? - user43286
我已经找到了解决方案。 问题出在bundle名称上。我输出的bundle js名称为index.android.jsbundle,并且按照上面的注释更改了android/app/build.gradle文件(不幸的是,它没有起作用,导致打开发布版apk时崩溃:找不到bundle..) 我通过将名称更改回默认的'index.android.bundle'来解决了这个问题,它可以工作。但是,如果我只更改了bundle名称,我应该怎么做呢? - Dr.King
显示剩余3条评论
2个回答

1
我终于找到了原因。有一个名为react-native-material-design-searchbar的模块导致了问题。奇怪的是,如果直接复制该模块中的SearchBar.js并在项目中使用,则所有内容都可以正常工作,即使在发布模式下也是如此。但是,如果直接导入模块,则仅在发布模式下无法正常工作。非常奇怪。SearchBar很好用,所以现在我通过将文件复制到我的项目中来直接使用它。

14
我有同样的问题,但可能是由另一个库引起的。你能否解释一下你是如何进行调试并找出根本原因的? - stilllife
嘿,你能告诉我你是如何调试出问题在特定包中的吗? - Shail Patel

0

我通过卸载 uglifyjs 并重新安装最新版本(使用 NPM)来解决了这个错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接