我正在开发一个React Native App。我正在使用Axios对PHP Laravel中的服务器进行api调用。如果我使用调试版本运行该应用程序,那么一切都会按预期进行。我可以毫无问题地拨打服务器。当我尝试发行apk时,Axios始终将状态为0的网络错误提示为“网络错误”。我确认我也未在服务器上收到任何请求。但这仅在Release apk中发生。
我正在使用服务器80端口上运行的本地IP 192.168.0.112。我也尝试了其他端口,但无济于事。问题是,如果我可以在调试apk中调用服务器,那么发布apk立即发出“网络错误”的问题是什么?
///这是我在用户首次按下“登录”按钮时首次启动应用程序时进行的第一次调用,这是失败的地方,并且catch中的代码运行。
Axios.post(server + "app/login", {
email: user.userEmail.toLowerCase(),
password: user.userPassword
})
.then(function(response) {
//This part doesn't run in release but works fine in debug
if (response.data.access_token.length) {
//Do Stuff If Logged In
}
})
.catch(function(error) {
//This is always executed in release as soon as the request is made
//i.e as soon as I press login button to login
console.log(error.request.status, error.config.url);
// Gives status = 0 and url "http://192.168.0.112/app/login"
});
预期的输出应该是该应用程序允许我登录以获取正确的凭据,并为我输入“错误的电子邮件或密码”消息,因为我输入了错误的凭据。我确实在Debug中获得了此输出。该错误仅发生在Release Apk中。
答案 0 :(得分:0)
答案 1 :(得分:0)
在清单文件中执行以下更改
<manifest xmlns:tools="http://schemas.android.com/tools">
<application android:usesCleartextTraffic="true" tools:targetApi="28">
</application>
</manifest>