uniapp内嵌到安卓中遇到的问题集合

4 篇文章 0 订阅

问题1

异常:

No implementation found for void com.taobao.weex.bridge.WXBridge.nativeReset…
当我像往常一样从u3d中打包出安卓工程,移植到安卓主工程时,在打包apk运行测试时,发现一直打不开uniapp项目,其他内容和功能都能正常运行,在网上找了一下,都是说项目构架方式的问题(armv7a,x86等等)这些都是18年多的解答了,我想用了这么多次应该不至于是这个问题,不过姑且还是试了一下,打包发现还是不行,网上有关的内容很少

解决方法

我只能尝试clean projects然后再rebuild projects,发现就成功了QAQ

有其他问题再更新记录
新年快乐…

问题2

异常:

在自测中,如果短时间内反复多次启动内置的uni小程序
会出现图片样式的加载失败以及遍历出来的item点击事件的失效问题

问题比较棘手,解决方案比较幼稚,但有效

思路

在访问后台接口的时候加了延迟(500毫秒左右),发现图片丢失的情况就没有了
接着是item点击失效的问题
中间尝试过很多解决方法,比如大改一下启动和关闭的逻辑,第一次打开后进程不杀死,在后台继续运行,再次打开的时候就打开那个进程.但是尝试了一小下感觉要改的东西太多了,并且修改了之后uniapp自己打包真机的时候可以保持运行,但是一打包到安卓里运行就不行,方法之间不兼容,想了想很浪费时间,并且去加了官方的交流群,提了问题和视频,还艾特了官方管理,根本得不到回复(先口嗨一下),想了想还是自己想办法解决吧
后面想起来项目中为了省事添加了在uni内置小程序中自行热更新的功能
该功能逻辑在是放在启动的app.vue上的,可能是这个原因导致的,然后就在uniapp中打包试了一下,果然这个问题就没有了,但是打包到安卓中会发现还是失败了,正当我一头雾水想打人的时候,我还是抱着尝试的心态去文件管理器中查看了一下应用包名下的uni,想看看有没有对应的crash日志,就在这个时候,我发现了每次打开小程序,都会生成一个wdt的缓存包,我就纳闷了,热更新的逻辑我早就关了,后面发现是我每次都习惯不删掉应用,直接在android studio中run,直接覆盖,可能是上个没去掉热更新功能的缓存导致的吧,清掉缓存删掉app重新打包运行后就没有这这个问题了

解决方法

加载接口数据时设置适时的settimeout
去掉热更新逻辑
最后每次打包测试时都删掉真机中原来的app应用,重新打包生成

问题3

异常

页面显示不完全
页面使用了scrollview组件,在调试时可以正常显示最下面的内容和数据
打包发布到服务器,在安卓内嵌这个页面时,发现最下面的内容不见了一部分

思路

先是判断为安卓的问题,因此在安卓的webview里设置了一遍参数,发现一直无法解决问题
后面认为可能是安卓的xml里根节点用了netscollview组件,netscrollview和webview两个组件之间发生了冲突,调试了一遍参数后发现依旧无法解决问题
最后判断为是uniapp的问题
在uniapp里因为数据是动态获取的,因此scrollview的长度也必须要动态变化,因此判断为原先获取页面长度的方法不兼容使用,因此使用了另一个函数获取页面高度
如下

解决方法

			let that = this;
			uni.getSystemInfo({
				success(res) {
					// tabbar-container
					let info = uni.createSelectorQuery().select(".title")
					info.boundingClientRect(data => {
						that.scrollHeight = res.windowHeight - data.height-100+'px'
						console.log(that.scrollHeight)
					}).exec()
				}
			})

修改了这个动态的高度后打包发布至服务器,在安卓中打开页面就显示正常了
不纠结原理…

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

淳杰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值