【问题标题】:Release version of React Native Android app getting 'generic network error' when trying to access API over HTTPSReact Native Android 应用程序的发布版本在尝试通过 HTTPS 访问 API 时出现“通用网络错误”
【发布时间】:2019-04-05 13:35:32
【问题描述】:

我正在尝试使用 API 16 且没有 Google Play 服务的 Android 设备运行我的 React Native 应用程序(版本 0.59.1)。我的问题是,当我在发布模式下构建我的应用程序时,通过 HTTPS 调用我的 API 会给我一个“网络错误”,没有更多详细信息。这些调用是使用 FETCH 进行的。

在调试模式下运行时,通过 HTTPS 调用的 API 可以正常工作。我还确认在发布模式下运行时只有 HTTP 有效。

我看过几篇建议创建自己的 TLS/SSL 连接工厂的帖子,但似乎 React Native 应该已经用他们的 OkHttpProvider 处理了这个问题:https://github.com/facebook/react-native/blob/master/ReactAndroid/src/main/java/com/facebook/react/modules/network/OkHttpClientProvider.java

我还包括了此处显示的保护规则:https://stackoverflow.com/a/38484643/3178433

我也试过关闭 pro-guard,但这似乎没有任何影响。

我错过了什么吗?是否缺少 proguard 规则? react 提供的 OkHttpClientProvider 是不是像我想的那样使用?

【问题讨论】:

    标签: react-native react-native-android android-4.2-jelly-bean


    【解决方案1】:

    找到了解决方案。我添加了这个 proguard 规则并解决了问题:

    -keepclassmembers class * implements javax.net.ssl.SSLSocketFactory {
        private final javax.net.ssl.SSLSocketFactory delegate;
    }
    

    【讨论】:

    • 你在哪里添加的?我面临同样的问题。
    • 您需要将此添加到您的 proguard-rules.pro 文件中
    猜你喜欢
    • 2020-02-19
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    • 2019-04-05
    • 1970-01-01
    • 2016-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多