有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java致命异常:ZoomTableManager

我遇到了一个奇怪的崩溃,我在谷歌上找不到任何关于它的信息。搜索ZoomTableManager不会返回任何结果

E/AndroidRuntime﹕ FATAL EXCEPTION: ZoomTableManager
Process: com.xxx.yyy, PID: 22129
java.lang.IllegalMonitorStateException: object not locked by thread before notify()
        at java.lang.Object.notifyAll(Native Method)
        at com.google.maps.api.安卓.lib6.gmm6.m.k.a(Unknown Source)
        at com.google.maps.api.安卓.lib6.gmm6.m.l.run(Unknown Source)

共 (4) 个答案

  1. # 1 楼答案

    结果表明,错误的原因是一个无效的Google Maps API密钥

    最近,我们不得不更改应用程序的包名,因此我们使用的API密钥变得无效,因为您必须通过签名和包名指定允许的应用程序

  2. # 2 楼答案

    在我们的例子中,改变的是用于签署android应用程序的密钥(而不是API密钥)。 在我们使用生产密钥(存储在密钥库中)之前。该生产密钥是在Google API控制台(https://console.developers.google.com)中启用的

    我们在一台新机器中设置了一个新的开发环境,该机器不像以前那样使用生产密钥,而是使用android的默认调试密钥(存储在android的默认调试密钥库$HOME/.android/debug.keystore中)

    解决方案是在谷歌API控制台中设置android的默认调试键SHA1和包名

    1. 获取SHA1:

      keytool-v-list-keystore$HOME/。android/debug。密钥库

    2. 复制SHA1:27:4C:CF:A3:E9:75:4A:59:4C:EE:50:21:2B:1C:7B:48:FC:45:4F:77

    3. 进入谷歌API控制台,输入SHA1;软件包名称(在API&;Auth>;Credentials>;编辑允许的Android应用程序中):

    27:4C:CF:A3:E9:75:4A:59:4C:EE:50:21:2B:1C:7B:48:FC:45:4F:77;通用域名格式。我的包裹。名字

    享受吧

  3. # 3 楼答案

    解决此问题的方法是为您的软件包申请google map公钥

    但是防止这种崩溃的方法是检查调用mapFragment = new MapFragment()的返回值,如果mapFragment为空,则不要调用fm.beginTransaction().replace(id, mapFragment).commit();

    希望有帮助

  4. # 4 楼答案

    当你调用obj.notify()并且你没有持有obj的原语互斥时,会出现带有该消息的IllegalMonitorStateException

    你应该这样做:

        synchronized (someObj) {
            ...
            someObj.notify();
            ...
        }
    

    或等效代码,但由于某些原因,导致问题的代码漏掉了synchronized位。(或者,它在另一个对象上进行了同步。)

    不幸的是,这发生在一些提供Google Maps API实现的模糊代码中。你还没有提供任何背景。所以我们几乎不可能猜出发生了什么

    我建议你提供更多细节