uniapp 打安卓包后非调试模式无法联网如何解决?

在使用uniapp打包安卓应用后,发现非调试模式下无法联网,调试模式下一切正常。已在manifest.json中配置了网络权限,但问题依旧。请问可能是什么原因导致的?该如何解决?

2 回复

检查安卓权限配置,在 manifest.json 中添加网络权限:

"permissions": {
  "android": {
    "uses-permission": [
      "android.permission.INTERNET"
    ]
  }
}

重新打包即可。


在 UniApp 打包安卓应用后,非调试模式无法联网通常是由于以下原因及解决方案:

1. 检查网络权限配置

  • manifest.json 中确保已添加安卓网络权限:
    {
      "app-plus": {
        "distribute": {
          "android": {
            "permissions": [
              "<uses-permission android:name=\"android.permission.INTERNET\"/>",
              "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>"
            ]
          }
        }
      }
    }
    
  • 重新打包生效。

2. 验证 HTTPS 请求

  • 安卓 9+ 默认禁止 HTTP 请求,确保所有接口使用 HTTPS。
  • 如需兼容 HTTP:
    • manifest.json 中配置网络安全性:
      "android": {
        "permissions": ["<uses-permission android:name=\"android.permission.INTERNET\"/>"],
        "customConfig": {
          "networkSecurityConfig": "@xml/network_security_config"
        }
      }
      
    • nativeplugins/resources 目录创建 xml/network_security_config.xml
      <?xml version="1.0" encoding="utf-8"?>
      <network-security-config>
          <base-config cleartextTrafficPermitted="true" />
      </network-security-config>
      

3. 检查服务器配置

  • 确认服务器支持 TLS 1.2+(安卓要求)。
  • 避免使用自签名证书。

4. 排查代码逻辑

  • 非调试模式下,检查代码中是否存在环境判断逻辑(如 process.env.NODE_ENV)导致请求被拦截。

5. 测试真机网络环境

  • 关闭调试模式,在真机测试时确认手机网络正常,且应用已获网络权限(系统设置中检查)。

操作步骤:

  1. 修改配置后,重新打包 APK。
  2. 卸载旧版,安装新包测试。

若问题依旧,检查控制台日志(通过 adb logcat 捕获错误信息)进一步定位。

回到顶部