我遇到了一个问题,在为应用程序添加风格后,我无法让 React Native 应用程序连接到 metro 捆绑器。我搜索了很多可能的解决方案,但无法使其工作。当我使用通过 USB 连接的物理设备时会发生此问题。在添加风格之前,USB 调试已打开,一切正常。我需要使用物理设备来测试一些蓝牙功能。
这是我添加到我的 gradle 文件中的内容:
debuggableVariants = ["localDebug"]
flavorDimensions "default"
productFlavors {
local {
resValue "string", "app_name", "Note Ninja (Debug)"
applicationIdSuffix ".debug"
versionNameSuffix "-debug"
buildConfigField "String", "FLAVOR_NAME", "\"local\""
}
internal {
resValue "string", "app_name", "Note Ninja (Internal Testing)"
versionNameSuffix "-internal"
buildConfigField "String", "FLAVOR_NAME", "\"internal\""
}
prod {
resValue "string", "app_name", "Note Ninja"
buildConfigField "String", "FLAVOR_NAME", "\"prod\""
}
}
现在我将我的 npm 脚本调整如下:
"android:local": "react-native run-android --mode=localDebug --appId com.noteninja.debug",
当我运行此脚本时,metro 正在启动,并且应用程序已安装在手机上,但我收到错误消息“无法加载脚本。请确保您正在运行 Metro,或者该软件包‘index.android.bundle’已正确打包以供发布。当我单击重新加载时,我收到错误消息“无法连接到开发服务器”。
我尝试在手机浏览器中打开 localhost:8081,我可以访问 metro,所以这似乎不是防火墙问题。我尝试了 adb reverse tcp:8081 tcp:8081,但这也没有帮助(当我使用 adb devices 时,设备已连接,因为它已列出)。我卸载了应用程序,清除了 gradle 和 metro 缓存,但似乎没有任何帮助。