发布了未知的位图参考 - 在 android 中设置标记

2024-03-06

CODE :-

    /**
     * Update marker position and icon
     */
    private void setMarker() {
        synchronized (OBJ_LOCK) {
            if (mLatitude != 0.0 || mLongitude != 0.0) {
                mRotatedBitmap = rotateBitmap(mOriginalMarkerBitmap, mBearing);

                if (mRotatedBitmap != null) {
                    mCurrentPositionIcon = BitmapDescriptorFactory
                            .fromBitmap(mRotatedBitmap);
                    mCurrentLocationMarker.position(new LatLng(mLatitude,
                            mLongitude));

                    mCurrentLocationMarker.icon(mCurrentPositionIcon);
                    mCurrentLocationMarker.anchor(0.5f, 0.5f);

                    if (currentMarker != null && mCurrentPositionIcon != null) {
                        currentMarker.setIcon(mCurrentPositionIcon);
                        currentMarker.setAnchor(0.5f, 0.5f);
                        currentMarker.setPosition(new LatLng(mLatitude,
                                mLongitude));
                    } else {
                        currentMarker = mGoogleMap
                                .addMarker(mCurrentLocationMarker);
                    }
                }
            }
        }
    }

logcat-

02-03 14:28:53.621: E/AndroidRuntime(28639): FATAL EXCEPTION: main
02-03 14:28:53.621: E/AndroidRuntime(28639): java.lang.RuntimeException: Error receiving broadcast Intent { act=medigit.rtid.MESSAGE_ACTION flg=0x10 (has extras) } in medigit.rtid.RTIDMapsActivity$RTIDBroadcastReceiver@41ccd230
02-03 14:28:53.621: E/AndroidRuntime(28639):    at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:765)
02-03 14:28:53.621: E/AndroidRuntime(28639):    at android.os.Handler.handleCallback(Handler.java:615)
02-03 14:28:53.621: E/AndroidRuntime(28639):    at android.os.Handler.dispatchMessage(Handler.java:92)
02-03 14:28:53.621: E/AndroidRuntime(28639):    at android.os.Looper.loop(Looper.java:137)
02-03 14:28:53.621: E/AndroidRuntime(28639):    at android.app.ActivityThread.main(ActivityThread.java:4744)
02-03 14:28:53.621: E/AndroidRuntime(28639):    at java.lang.reflect.Method.invokeNative(Native Method)
02-03 14:28:53.621: E/AndroidRuntime(28639):    at java.lang.reflect.Method.invoke(Method.java:511)
02-03 14:28:53.621: E/AndroidRuntime(28639):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
02-03 14:28:53.621: E/AndroidRuntime(28639):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
02-03 14:28:53.621: E/AndroidRuntime(28639):    at dalvik.system.NativeStart.main(Native Method)
02-03 14:28:53.621: E/AndroidRuntime(28639): Caused by: java.lang.IllegalArgumentException: Released unknown bitmap reference
02-03 14:28:53.621: E/AndroidRuntime(28639):    at maps.aq.o.a(Unknown Source)
02-03 14:28:53.621: E/AndroidRuntime(28639):    at maps.af.n.b(Unknown Source)
02-03 14:28:53.621: E/AndroidRuntime(28639):    at maps.af.bm.a(Unknown Source)
02-03 14:28:53.621: E/AndroidRuntime(28639):    at eeo.onTransact(SourceFile:204)
02-03 14:28:53.621: E/AndroidRuntime(28639):    at android.os.Binder.transact(Binder.java:326)
02-03 14:28:53.621: E/AndroidRuntime(28639):    at com.google.android.gms.maps.model.internal.d$a$a.i(Unknown Source)
02-03 14:28:53.621: E/AndroidRuntime(28639):    at com.google.android.gms.maps.model.Marker.setIcon(Unknown Source)
02-03 14:28:53.621: E/AndroidRuntime(28639):    at medigit.rtid.RTIDMapsActivity.setMarker(RTIDMapsActivity.java:493)
02-03 14:28:53.621: E/AndroidRuntime(28639):    at medigit.rtid.RTIDMapsActivity.access$20(RTIDMapsActivity.java:478)
02-03 14:28:53.621: E/AndroidRuntime(28639):    at medigit.rtid.RTIDMapsActivity$RTIDBroadcastReceiver.onReceive(RTIDMapsActivity.java:461)
02-03 14:28:53.621: E/AndroidRuntime(28639):    at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:755)
02-03 14:28:53.621: E/AndroidRuntime(28639):    ... 9 more

已经检查了#SO发布未知位图参考 https://stackoverflow.com/questions/18097090/released-unknown-bitmap-reference,但对我来说一点帮助都没有。


这对我有用:不要使用死标记引用:currentMarker 可以不为空,但同时可能会引用以前的地图。

当你不需要标记引用时(onDestroy 或 onPause),总是丢弃它们,并且总是获取新的,只是不要仅仅依赖currentMarker!=null

    ...

    if (currentMarker == null)
        currentMarker = mGoogleMap.addMarker(mCurrentLocationMarker);

    if (mCurrentPositionIcon != null) {
        currentMarker.setIcon(mCurrentPositionIcon);
        currentMarker.setAnchor(0.5f, 0.5f);
        currentMarker.setPosition(new LatLng(mLatitude,mLongitude));
    }

    ...

@Override
public void onPause() {
    currentMarker.remove();
    currentMarker = null;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

发布了未知的位图参考 - 在 android 中设置标记 的相关文章

  • FireStore 日期查询未按预期工作

    我有一个有日期对象的文档 初始化 Firestore 的代码 FirebaseFirestore fireStore FirebaseFirestore getInstance FirebaseFirestoreSettings setti
  • 在 Android 库项目中禁用 Crashlytics 进行调试

    我有一个包含多个模块的项目 模块的公共代码位于库模块中 问题是我们最近将 Crashlytics 添加到了我们的项目中 在库模块中 即使我们处于调试模式 我们也会不断收到错误报告 我在网上搜索了一下 发现库总是被视为Release模式 现在
  • 序列化 ArrayList

    我正在尝试编写一个 Android 游戏 即使用户想要返回主菜单或者活动被系统终止 我也希望能够暂停游戏 onSaveInstanceState 似乎并没有给我很大的控制权来决定何时可以读回捆绑包 而且据我所知 捆绑包仅在短时间内有效 所以
  • 无法调用类的无参数构造函数。向 Gson 注册此类型的 InstanceCreator 可能会解决此问题

    java lang RuntimeException Unable to invoke no args constructor for class com arch example network models NetworkPagingL
  • 如何创建轮播ViewPager?

    我想做的只是 Android 中的水平轮播 如果我有 3 个屏幕 A B 和 C 那么我希望我的 ViewPager 允许我像这样移动 A B B C C A GTalk for Android 的对话可以这样切换 三星的主屏幕和应用程序屏
  • rvm + Rails3 + gmaps4rails -acts_as_gmappable

    我是一个红宝石导轨之类的菜鸟 抱歉 如果我的问题很愚蠢 我设置了一个运行 ruby 1 8 7 p334 的 rvm 作为用户 环境 我已经为我的 应用程序 创建了一个 gemset 现在我想在页面上显示地址的地图 我四处寻找 发现了 gm
  • 如何在无头Linux中更新Android平台工具?

    我们有一些没有安装 X Window 的 CI 主机 我知道如何使用 android 更新命令更新 SDK 但如何使用此命令更新平台工具 您可以使用以下命令 android list sdk android update sdk no ui
  • 如何将参数传递给Workmanager DoWork方法

    我想安排任务在 24 小时后从数据库中删除 public class WorkManager extends Worker public WorkManager NonNull Context context NonNull WorkerP
  • 更新到最新版本(3.1)后缺少 google-play-services_lib.jar

    我在我的应用程序中使用 Google Play 服务已经有一段时间了 没有出现任何问题 我正在使用 Eclipse 我已在 I O 后将播放服务 以及 ADT 和 SDK 更新到最新版本 但现在我无法构建我的应用程序 我已将 google
  • 文本末尾有额外的换行符

    使用此方法设置文本后 我似乎得到了一些额外的换行符TextView message setText Html fromHtml message 我怎样才能删除这些 它们导致我的布局扭曲 因为它在输出中添加了两条额外的行 该字符串已通过以下方
  • 底部导航视图 - 渐变图标色调

    I have changed icon tint in BottomNavigationView using selector and gradient color as tint when icon is pressed but inst
  • iOS 版 Google 地图 SDK 中的热图

    有没有办法添加热图图层适用于 iOS 的 Google 地图 SDK https developers google com maps documentation ios 注意 我指的是存在于Javascript 版本的 Google 地图
  • 覆盖乔达一周的第一天?

    是否有可能覆盖乔达弱的第一天sunday 因为 Joda 使用Monday作为一周的第一天 如果有办法的话 谁能解释一下 我在 SOF 中提到了以下主题 乔达时间 一周的第一天 https stackoverflow com questio
  • RecyclerView onClick notificationItemRemoved 不会触发 onBindView

    I use notifyItemRemoved 方法我想更改其他剩余项目 但该方法没有触发onBindView 方法 除了使用notifyDataSetChanged 我想要附带的动画notifyItemRemoved method 如果您
  • Google 地图 - 如何获取空白底图

    我想要一个空白的谷歌地图 没有任何显示路线图 地形 混合或卫星数据的底图 只有一个白色背景来仅显示我的图层 那可能吗 hexblot 的建议是正确的 即查看自定义地图类型文档 这是我在没有任何控制的情况下获得空白地图 白色背景 所做的事情
  • Android 中 Bitmap 和 Drawable 有什么区别?

    我用谷歌搜索 但找不到任何文章来描述 Android 中 Bitmap 和 Drawable 之间的区别 位图是位图图像的表示 类似于 java awt Image Drawable 是 可以绘制的东西 的抽象 它可能是一个位图 包装为Bi
  • 如何在列表视图中选择时启用视频序列自动播放?

    大家好 有人可以与我分享一下我如何编写我的 viewvideo java 类 以便它允许自动播放视频功能 自动排序在列表视图中播放所选视频的任务 从当前位置到最新录制的视频 按顺序直到最新的视频播放完毕 这类似于 YouTube 自动播放功
  • 如何使用Android Studio录制Android屏幕?

    我已经在 Mac 上的 Applications 文件夹中安装了 Android Studio 我认为 sdk 位于包内容中 但现在我想使用 AShot jar 录制屏幕以获取应用程序的演示视频 我必须放弃SDK的路径 当我给出我认为正确的
  • Android动态功能模块,找不到资源

    当下载的功能模块发布到 Play 商店时 我在启动活动时遇到问题 它总是在下载模块活动中的 setContentView 上崩溃 java lang RuntimeException Unable to start activity Com
  • getApplicationDocumentsDirectory 在 flutter 桌面(Windows)上不起作用

    如何在 Windows 上的 flutter 桌面上保存和打开文件 getApplicationDocumentsDirectory 不适用于 Windows 应用程序的 flutter 桌面 Future

随机推荐