uni-app 离线打包HTTP请求报错
uni-app 离线打包HTTP请求报错
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | 21H1 | HBuilderX |
| Android | 9.0 |
示例代码:
app.$u.service
.login({
mobile: this.mobile,
mima: Base64.encode(this.mima)
})
.then(res => {
this.state_text = res.message;
this.tem_user = res.validateMap;
app.$api.msg({
title: `${res.message}`
});
if (res.code * 1 == 1) {
app.$u.vuex('vuex_under_line', false); //没有被挤下来
uni.hideLoading();
// #ifdef APP-PLUS
app.$u.service.inspectDownload([this.tem_user], 'headUrl', 200, 200).then(rw => {
console.log(rw);
// 请求成功就去查缓存 ; 有缓存的话清理掉重写 ; 没缓存的话 那没事了
app.$u.vuex('vuex_token', this.tem_user.apiKey);
app.$u.vuex('vuex_user', this.tem_user);
// 刷新token // 这几行的代码请不要变动顺序
app.$u.http.setConfig();
app.$u.api.getUserSchoolList({}).then(res => {
app.$u.vuex('vuex_schoolList', res);
if (res.length > 1) {
// 学效列表大于 1 就是存在可以切换的学校
app.$u.route({ url: '/pages/switchGarden/index', type: 'reLaunch' });
} else {
setTimeout(() => {
app.$u.route({ url: '/pages/index/index', type: 'reLaunch' });
}, 600);
}
});
});
// #endif
// #ifdef H5 || MP-WEIXIN
app.$u.vuex('vuex_token', this.tem_user.apiKey);
app.$u.vuex('vuex_user', this.tem_user);
// 刷新token // 这几行的代码请不要变动顺序
app.$u.http.setConfig();
app.$u.api.getUserSchoolList({}).then(res => {
app.$u.vuex('vuex_schoolList', res);
if (res.length > 1) {
// 学效列表大于 1 就是存在可以切换的学校
console.log('切换园所');
console.log(app.vuex_schoolList);
app.$u.route({ url: '/pages/switchGarden/index', type: 'reLaunch' });
} else {
setTimeout(() => {
app.$u.route({ url: '/pages/index/index', type: 'reLaunch' });
}, 600);
}
});
// #endif
操作步骤:
- 点击登录无反应,AndroidStudio报错
预期结果:
- 点击登录能够正常登录
实际结果:
- 点击登录无反应,AndroidStudio报错
bug描述:
- uniapp离线打包,在原设备上正常,换一台设备访问http请求的时候报错

更多关于uni-app 离线打包HTTP请求报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
原因找到了,是因为安卓设备的型号是中文的,使用adb将型号改成英文的就可以了
更多关于uni-app 离线打包HTTP请求报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html
从您提供的错误信息来看,离线打包后HTTP请求失败主要涉及网络安全配置问题。以下是关键分析:
-
Android 9.0网络安全性限制:从Android 9(API级别28)开始,默认禁止明文HTTP流量。您的应用可能尝试访问非HTTPS接口,触发
CLEARTEXT_NOT_PERMITTED错误。 -
解决方案:
- 配置network_security_config:在
manifest.json的App模块配置中,勾选“允许HTTP请求”。这会在原生配置中生成对应的网络安全配置。 - 或手动在
AndroidManifest.xml的<application>标签内添加:android:usesCleartextTraffic="true"
- 配置network_security_config:在

