android - HERE map 异常 "cannot initialize the engine twice"。安卓5.0.1

标签 android here-api

当我尝试初始化 HERE map 库的 MapFragment 时,出现异常。在安卓 5.0 上。 Android 4.2 运行良好。

java.lang.RuntimeException: Cannot initialize the engine twice
at com.nokia.maps.MapsEngine.<init>(MapsEngine.java:585)
at com.nokia.maps.MapsEngine.b(MapsEngine.java:874)
at com.nokia.maps.MapsEngine.b(MapsEngine.java:391)
at com.nokia.maps.MapsEngine.a(MapsEngine.java:343)
at com.here.android.mpa.common.MapEngine.init(MapEngine.java:129)
at com.nokia.maps.br.a(MapFragmentImpl.java:126)
at    com.here.android.mpa.mapping.MapFragment.init(MapFragment.java:108)
at com.reverllc.rever.map.MapFragment.setUpMapView(MapFragment.java:366)
at com.reverllc.rever.map.MapFragment.onRideStatusUpdate(MapFragment.java:649)
at com.reverllc.rever.service.TrackingServiceManager.invokeStatusListeners(TrackingServiceManager.java:135)
at com.reverllc.rever.service.TrackingServiceManager.access$600(TrackingServiceManager.java:27)
at com.reverllc.rever.service.TrackingServiceManager$IncomingHandler.handleMessage(TrackingServiceManager.java:276)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5951)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)

我的 map fragment 位于 LinearLayout 中。

<LinearLayout      xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<fragment
    class="com.here.android.mpa.mapping.MapFragment"
    android:id="@+id/mapfragment"
    android:layout_width="match_parent"
    android:layout_height="100dp"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/relativeLayout"
    android:layout_centerHorizontal="true"/> 

    ........................................

在 Activity 类上,我可能会按 ID 分段。而且我只调用一次 init 方法。尝试 init map 时发生异常。我设置了断点,我确信 init 方法只调用一次。我正在做 official article HEREmap 中写的所有内容

在我使用 mapFragment 的 Activity 中使用 onCreate 方法:

 @Override
protected void onCreate(Bundle savedInstanceState) {
    setUsingEventBus(true);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_map);


    mapFragment = (com.here.android.mpa.mapping.MapFragment)getFragmentManager().findFragmentById(
            R.id.mapfragment);
    mapFragment.init(new OnEngineInitListener() {
        @Override
        public void onEngineInitializationCompleted(
                OnEngineInitListener.Error error)
        {
            if (error == OnEngineInitListener.Error.NONE) {
                map = mapFragment.getMap();
                map.setCenter(new GeoCoordinate(49.196261, -123.004773, 0.0),
                        com.here.android.mpa.mapping.Map.Animation.NONE);
                map.setZoomLevel(
                        (map.getMaxZoomLevel() + map.getMinZoomLevel()) / 2);
            } else {
                Log.d("MapFragment","ERROR: Cannot initialize Map Fragment");
            }
        }
    });

谁能帮忙解决这个问题?

更新

应用程序日志 file

最佳答案

我有一些问题!! 我找到了一个类似的日志。 我/编舞:跳了34帧!应用程序可能在其主线程上做了太多工作。 我的解决方案是只在 onCreate() 中执行 mapFragment.init()。其他事件移至 onStart()。

关于android - HERE map 异常 "cannot initialize the engine twice"。安卓5.0.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40560884/

相关文章:

android - onFailedToReceiveAd(广告请求成功,但在使用 admob 和 adwhirl 时,由于缺少广告资源,没有返回广告

android - 共享首选项未保存

java - 对代码的几个部分进行相同的异常处理。安卓系统

c# - 在 map 上作为图钉的图像 - Windows Phone 8

javascript - 使用 Promise 顺序加载脚本

java - Sonar-runner执行失败导致cast异常

java - onPageFinished 内的 prefs.putBoolean

javascript - 尝试使用示例创建集群,但 addLayer 未定义

javascript - 如何在此处的 map 中检索我所在国家/地区的结果?

ios - 这里是 iOS SDK。 map 未加载