Android 为发布构建的应用程序仍在尝试连接到 localhost:8081
Android app built for release still trying to connect to localhost:8081
我正在尝试在我的 Android phone 上获取我的 React Native 应用程序的 alpha 版本,但是当我打开它时,它立即崩溃了。幸运的是,它已经过检测,所以我可以看到错误都是因为它仍在尝试连接到 Metro 服务器,这是我希望从调试版本中获得的,但我无法弄清楚如何在发布版本中阻止这些调用。以下是错误:
Cannot connect to host http://localhost:8081/inspector/device
Cannot connect to host http://localhost:8081/message
采取的步骤:
- 我正在通过 Android Studio 生成签名的 APK,然后将其发送给自己并安装到我的 phone。
- 即使我在“生成签名的捆绑包或 APK”对话框中选择了发布版本,我也将默认版本变体设置为“发布”。这奇怪地将连接尝试从“10.0.0.22”更改为“localhost”,但没有解决我的问题。
- 我试过清理项目。
- 我在项目中搜索了对 localhost 或 10.0.0.22 的任何引用,但没有发现任何与 Android 构建相关的内容。
- 从 AndroidManifest.xml(例如,expo.modules.updates.EXPO_UPDATES_CHECK_ON_LAUNCH)中删除了 Expo 更新元数据。
- 在不同的项目中构建了一个 APK 并安装在我的 phone 上——它按预期工作。
可能相关的信息:
- 我是作为一个 Expo 项目开始的,几周前退出了,但 Expo 似乎留下了一些问题。
------------ 7 月 23 日更新------------
经过一些更改后,我遇到了无法加载第 3 方身份验证屏幕的错误。更改内容如下:
- 运行 Android Studio 中的代码分析器并删除了一些不应该存在的权限:MANAGE_DOCUMENTS、WRITE_SETTINGS、USE_FINGERPRINT
- 还自动修复了未调用超类的错误(我忘记了确切的细节,它似乎不在受源代码控制的文件中,因为我的 diff 中没有任何内容)
- 几天前提交的分支代码,在我添加启动器图标和第 3 方监控工具之前。
我仍然需要调试身份验证,但看起来我可能已经转向了一个新问题。我仍然会进行一些挖掘,看看是否可以缩小问题的真正原因。
------------ 7 月 23 日晚些时候更新------------
现在一切都很好,虽然我不知道是什么造成了不同。在我上次更新后构建进入了一个奇怪的状态,我最终在阅读 后删除了我的 .gradle 文件夹。我还更新了 gradle,此时我的理论是升级与删除该文件夹相结合才是真正的修复。
我已经重新安装了监控软件,没有遇到任何问题。
如果其他人 运行 参与其中,我会考虑清理 Android 构建。我将按顺序尝试的步骤:
- 从
android
文件夹,运行 ./gradlew clean
,然后 re-build
- 如果这不起作用,请删除
.gradle
文件夹,如已接受的答案所示
- 检查你的gradle版本,如果过期就升级
我正在尝试在我的 Android phone 上获取我的 React Native 应用程序的 alpha 版本,但是当我打开它时,它立即崩溃了。幸运的是,它已经过检测,所以我可以看到错误都是因为它仍在尝试连接到 Metro 服务器,这是我希望从调试版本中获得的,但我无法弄清楚如何在发布版本中阻止这些调用。以下是错误:
Cannot connect to host http://localhost:8081/inspector/device
Cannot connect to host http://localhost:8081/message
采取的步骤:
- 我正在通过 Android Studio 生成签名的 APK,然后将其发送给自己并安装到我的 phone。
- 即使我在“生成签名的捆绑包或 APK”对话框中选择了发布版本,我也将默认版本变体设置为“发布”。这奇怪地将连接尝试从“10.0.0.22”更改为“localhost”,但没有解决我的问题。
- 我试过清理项目。
- 我在项目中搜索了对 localhost 或 10.0.0.22 的任何引用,但没有发现任何与 Android 构建相关的内容。
- 从 AndroidManifest.xml(例如,expo.modules.updates.EXPO_UPDATES_CHECK_ON_LAUNCH)中删除了 Expo 更新元数据。
- 在不同的项目中构建了一个 APK 并安装在我的 phone 上——它按预期工作。
可能相关的信息:
- 我是作为一个 Expo 项目开始的,几周前退出了,但 Expo 似乎留下了一些问题。
------------ 7 月 23 日更新------------
经过一些更改后,我遇到了无法加载第 3 方身份验证屏幕的错误。更改内容如下:
- 运行 Android Studio 中的代码分析器并删除了一些不应该存在的权限:MANAGE_DOCUMENTS、WRITE_SETTINGS、USE_FINGERPRINT
- 还自动修复了未调用超类的错误(我忘记了确切的细节,它似乎不在受源代码控制的文件中,因为我的 diff 中没有任何内容)
- 几天前提交的分支代码,在我添加启动器图标和第 3 方监控工具之前。
我仍然需要调试身份验证,但看起来我可能已经转向了一个新问题。我仍然会进行一些挖掘,看看是否可以缩小问题的真正原因。
------------ 7 月 23 日晚些时候更新------------
现在一切都很好,虽然我不知道是什么造成了不同。在我上次更新后构建进入了一个奇怪的状态,我最终在阅读
我已经重新安装了监控软件,没有遇到任何问题。
如果其他人 运行 参与其中,我会考虑清理 Android 构建。我将按顺序尝试的步骤:
- 从
android
文件夹,运行./gradlew clean
,然后 re-build - 如果这不起作用,请删除
.gradle
文件夹,如已接受的答案所示 - 检查你的gradle版本,如果过期就升级