温馨提示:本文翻译自stackoverflow.com,查看原文请点击:android - React Native app won't start when using applicationIdSuffix

android - 使用applicationIdSuffix时无法启动React Native应用

发布于 2020-03-28 23:39:25

我正在使用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。由于没有设置模拟器,因此我只在物理设备上尝试过。

我已经对所有其他项目进行了三重检查,但我不认为这是配置问题。

查看更多

查看更多

提问者
Jameal G
被浏览
20
Laurent S 2017-04-30 03:13

从上面的链接,它在github上讨论了很长时间(超过一年),并且似乎有一些补丁,因此,根据react-native您所使用的版本,我下面的修复可能会或可能不会起作用

这是我(临时)解决此问题的方法。问题是react-native-cliadb shell am start用错误的参数调用:

com.packagename/com.packagename.MainActivity

当它应该调用类似

com.packagename.debug/com.packagename.MainActivity

因此,在确定您的版本之前react-native,可以使用此命令(如本代码推送PR中的建议

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

这不是一个完美的解决方案,但是github上有一个补丁,它实际上完成了同样的事情(涉及到两个问题以及这里这里的拉取请求)。