react native 集成高德地图 tagged-pointers 后退闪退

2022-09-27 16:41:44
--::-/com.p.aaa A/libc: Pointer tag was truncatedsee .
--::-/com.p.aaa A/libc: Fatal signal (SIGABRT)code -(SI_QUEUE) tid (GLThread )pid (com.p.xuexi)

2022-09-27 16:40:34.175 14872-15459/com.p.aaa A/libc: Pointer tag for 0x7dbfc28fd0 was truncated, see 'https://source.android.com/devices/tech/debug/tagged-pointers'. 2022-09-27 16:40:34.176 14872-15459/com.p.aaa A/libc: Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 15459 (GLThread 565), pid 14872 (com.p.xuexi)

解决办法 在 application标签中添加 

android:allowNativeHeapPointerTagging="false"

android:allowNativeHeapPointerTagging="false"

一开始使用npm中搜的高德地图react native SDK,一开始一直使用虚拟机开发没啥问题,某一天换成真机测试了,发现每次更改代码后直接崩溃了,react native 日志并没有啥问题。

     使用android studio 跟踪错误,出现了下面两行代码。 我当时也点开去看了,没仔细看,感觉没啥有的信息,各种搜索也没出来啥问题。



    鉴于网上这个维护react native库的这个哥们,已经不是很积极维护这个库了,有些方法它也并不打算更新进去,我就尝试自己封装地图库,也是一顿研究呀。


    等我封装好,发现,还是同样的问题,升级sdk也是这样的问题,我就考虑是不是refresh的时候重新实例化地图错误了,发现不是。后来考虑是destroy的问题,去掉果然是,我自然的就尝试了后退会出现怎样的问题,结果后退果然崩溃了,那肯定就是destroy的问题,我尝试注释了destroy中的代码,结果过人不崩溃了,但是没有释放实例呀,我尝试搜索百度地图destroy崩溃的问题,找到了问题 报错原因高的地图调用mapView.onDestroy() 崩溃问题

我又在github issue里面搜索android:allowNativeHeapPointerTagging,果然在我亲自集成地图组件库的时候,有人提了相同的问题,并且解决了。 

    哎,其实第一开始代码崩溃给的提示里面就足以解决这个问题, https://source.android.com/devices/tech/debug/tagged-pointers  没有仔细看,一直以为是库的问题。 耽误了不少时间。

    以后得注意看错误日志。  不过学习了如何集成react native UI库,也是一个不错的事。巩固了react native提取公共组件和方法的能力,上次整明白以后给忘了,这次巩固了。

  • 2020-01-07 10:06:00

    vue重定向beforeRouterEnter与replace的使用

    一个登录页面,只有第一次才会出现,一旦出现过,以后再也不会出现,即使是输入该页面的url也不会跳转到该页面,只会跳转到指定的其他页面;

  • 2020-01-07 10:14:07

    vue强制刷新组件 销毁和重建

    很多时候,通过重置数据将页面重置时,子组件可以提供重置的方法,或者提供props重置自己的状态。但是相对麻烦,那可以使用强制刷新来实现刷新组件。

  • 2020-01-07 10:17:42

    vue钩子函数beforeRouteUpdate没有反应

    由于会渲染同样的 Foo 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用。 可以访问组件实例 `this`

  • 2020-01-08 13:23:24

    vue 中使用eventbus

    为了提高组件的独立性和重用性,父组件会通过props向下传数据给子组件,当子组件又事情要告诉父组件时用通过$emit事件告诉父组件,如此确保每个组件都是独立在相对隔离的环境中运行,可以大幅度提高组件的可维护性

  • 2020-01-08 13:30:30

    vue中eventbus被多次触发(vue中使用eventbus踩过的坑)

    一开始的需求是这样子的,我为了实现两个页面组件之间的数据传递,假设我有页面A,点击页面A上的某一个按钮之后,页面会自动跳转到页面B,同时我希望将页面A上的某一些参数携带过去给页面B。 然后我就想,这不就是不同组件之间的数据传递问题而已吗?直接用bus 巴士事件来传递数据不就行了吗。于是,我就很愉快地进行了。关于vue中的eventbus的使用,我之前在一篇vue中的数据传递中有提到过。

  • 2020-01-08 22:03:07

    修改MAC系统下默认PHP版本

    今天在使用mac时遇到了一个问题,因为需要composer拉取laravel5.6,但是提示我php版本过低,但是我本人使用的是集成环境MAMP,已经切换了php7.2的版本,这个为什么没有生效呢?经检查是因为composer检测得是mac下环境变量生效的php版本