当前位置:  开发笔记 > Android > 正文

使用applicationIdSuffix时,React Native应用程序无法启动

如何解决《使用applicationIdSuffix时,ReactNative应用程序无法启动》经验,为你挑选了2个好方法。

我正在使用react-native-codepush@1.16.1-beta,部分设置包括指定applicationIdSuffix.

我在过去的应用程序中设置了这个没有问题(React Native 0.37).我现在用这个项目两次遇到这个错误(React Native 0.40).我第一次重建我的整个项目,它就消失了.它开始再次发生,没有明显的原因所以我在一个新的目录中克隆了我的项目的最后一个稳定版本,并得到了同样的错误.

使用时发生错误react-native run-android.成功构建后发生错误:

Starting: Intent { cmp=com.packagename/.MainActivity }
Error type 3
Error: Activity class {com.packagename/com.packagename.MainActivity} does not exist.

如果我applicationIdSuffix ".debug"从中移除app/build.gradle并且应用程序在我的手机上启动而没有问题,则该错误消失.

我的手机是带有Android 7.0的Nexus 6P.我只尝试过物理设备,因为我没有设置模拟器.

我已经将所有内容与我的其他项目进行了三次检查,我不相信这是一个配置问题.



1> Simon..:

这对我的反应原生0.50.3起作用了

react-native run-android --appIdSuffix "debug"



2> Laurent S..:

从上面的链接,它已经在github上讨论了很长时间(超过一年),并且在他们的路上似乎有一些补丁,所以我的修复可能会或可能不会工作取决于react-native你使用的版本.

这就是我(暂时)解决问题的方法.问题是react-native-cli尝试adb shell am start使用错误的参数调用:

com.packagename/com.packagename.MainActivity

什么时候应该调用类似的东西

com.packagename.debug/com.packagename.MainActivity

因此,react-native在修复您的版本之前,您可以使用此命令(如此代码推送PR中所建议的那样:

cd android && ./gradlew installDebug && adb -s  shell am start -n com.packageName.debug/com.packageName.MainActivity

这不是一个完美的解决方案,但是在github上有一个补丁,它基本上做同样的事情(关于这里和这里的几个问题和拉取请求).

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有