uni-app 华为nova3 启动闪退
uni-app 华为nova3 启动闪退
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows | 10 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Windows
HBuilderX类型:正式
HBuilderX版本号:3.0.7
手机系统:Android
手机系统版本号:Android 8.1
手机厂商:华为
手机机型:nova3
页面类型:vue
打包方式:云端
App下载地址或H5网址:
https://www.liaoyitong.com/download
示例代码:
<script>
import Vue from 'vue';
import permision from "@/utils/uni-tools/permission.js"
import {mapMutations, mapGetters} from 'vuex';
export default {
onLaunch: function() {
console.log("App Launch");
const role = uni.getStorageSync('role')
if (role == 'doctor') {
uni.$TIM_READY = false;
uni.reLaunch({
url: '/pages/index/doctors-index'
})
}
uni.getSystemInfo({
success: e => {
Vue.prototype.statusHeight = e.statusBarHeight;
Vue.prototype.screenHeight = e.screenHeight;
// #ifdef H5
Vue.prototype.statusHeight += 25
// #endif
}
});
this.$tim.on(this.$TIM.EVENT.MESSAGE_RECEIVED, e => {
console.log(e.data);
if (Array.isArray(e.data)) {
e.data.forEach(msg => this.PUSH_MESSAGE(msg))
}
});
// #ifdef APP-PLUS
var jyrtc = uni.requireNativePlugin('JY-TXRTC');
jyrtc.initPlugin({
userid: '0zM8A3p42Oe3jDX'
}, result => {
console.log(JSON.stringify(result));
jyrtc.initSDK(result => {
jyrtc.registerFunc(res=>{
});
});
});
this.getPermission()
plus.push.addEventListener('click', (message) => {
const payload = message.payload;
if (payload) {
console.log(payload)
if (typeof payload.params === 'string') {
const params = JSON.parse(payload.params);
if (params.noticeType === 'order') {
this.$store.commit('order/SET_DETAILS', {id: params.orderId})
uni.navigateTo({
url: '/pages/users/pay-success'
})
}
}
}
})
plus.push.addEventListener('receive', (message) => {
const content = JSON.parse(message.content)
console.log(content)
plus.push.createMessage(content.content)
}, true)
// #endif
},
onShow: function() {
console.log("App Show");
},
onHide: function() {
console.log("App Hide");
},
methods: {
...mapMutations('chat', ['SET_CONV', 'SET_ME', 'PUSH_MESSAGE']),
async getPermission() {
return await new Promise(resolve => {
if (plus.os.name == 'iOS')
if (!permision.judgeIosPermission("camera") || !permision.judgeIosPermission("record")) {
permision.gotoAppPermissionSetting()
} else {
resolve(true)
}
if (plus.os.name == 'Android') {
permision.requestAndroidPermission("android.permission.CAMERA").then(result => {
if (result != 1) {
uni.$toast('需要获取相机权限')
setTimeout(()=>{
permision.gotoAppPermissionSetting()
}, 1500)
} else {
permision.requestAndroidPermission("android.permission.RECORD_AUDIO").then(result => {
if (result != 1) {
uni.$toast('需要获取麦克风权限')
setTimeout(()=>{
permision.gotoAppPermissionSetting()
}, 1500)
} else {
resolve(true)
}
})
}
})
}
})
},
}
};
</script>
<style>
</style>
操作步骤:
- 使用华为nova3手机打开
预期结果:
- 可以正常进入,与其他机型一致
实际结果:
- 开屏闪退
bug描述:
启动APP时闪退
开发者后台可以看到崩溃日志
崩溃日志:
2021/03/26 13:23:00 [crash] imei:9A3039AE7F5656C35FEA421CFC0059B5 md:PAR-AL00 p:a os:28 net:3 vb:1.9.9.80630 mc: appid:UNI11F6057 appcount:1 wvcount:2 pn:com.liaoyitong.inquiry mem:5776kb etype:1 eurl: carsh_info:com.alibaba.fastjson.JSONException: syntax error, pos 1
at com.alibaba.fastjson.parser.DefaultJSONParser.parse(DefaultJSONParser.java:1261)
at com.alibaba.fastjson.parser.DefaultJSONParser.parse(DefaultJSONParser.java:1171)
at com.alibaba.fastjson.JSON.parse(JSON.java:104)
at com.alibaba.fastjson.JSON.parse(JSON.java:95)
at com.alibaba.fastjson.JSON.parseObject(JSON.java:135)
at com.jiyi.jy_txrtc.JY_TXRTC$1$1.onResponse(JY_TXRTC.java:90)
at okhttp3.RealCall$AsyncCall.execute(RealCall.java:141)
at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
at java.util.concurrent.ThreadPoolExecutor.processTask(ThreadPoolExecutor.java:1187)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:784)
更多关于uni-app 华为nova3 启动闪退的实战教程也可以访问 https://www.itying.com/category-93-b0.html
问题出在JY_TXRTC 应该是uni原生插件.与插件作者反馈下
更多关于uni-app 华为nova3 启动闪退的实战教程也可以访问 https://www.itying.com/category-93-b0.html
根据崩溃日志分析,闪退问题出现在JY-TXRTC原生插件初始化过程中。崩溃堆栈显示:
com.alibaba.fastjson.JSONException: syntax error, pos 1
at com.jiyi.jy_txrtc.JY_TXRTC$1$1.onResponse(JY_TXRTC.java:90)
这表明插件在解析JSON响应时遇到语法错误,位置在字符串的第一个字符。问题可能源于:
-
网络请求返回数据格式异常 - JY-TXRTC插件初始化时向服务器发送请求,但返回的数据不是有效的JSON格式,可能是空字符串、HTML错误页面或其他非JSON数据。
-
插件配置参数问题 - 传入的userid参数
'0zM8A3p42Oe3jDX'
可能包含特殊字符或格式不符合服务器预期。
解决方案:
-
检查网络环境 - 确保设备网络连接正常,服务器接口可正常响应。
-
验证插件配置 - 确认userid参数格式正确,联系插件提供商确认参数要求。
-
添加错误处理 - 在插件初始化代码外包裹try-catch块:
jyrtc.initPlugin({
userid: '0zM8A3p42Oe3jDX'
}, result => {
console.log(JSON.stringify(result));
try {
jyrtc.initSDK(result => {
jyrtc.registerFunc(res=>{
// 处理逻辑
});
});
} catch(e) {
console.error('JY-TXRTC初始化失败:', e);
}
});