2017-05-05 121 views
0

我想將HereMap嵌入到我的項目中。但我有遇到以下錯誤:Android MapFragrement缺失庫libMAPSJNI.so

ERROR: Cannot initialize Map Fragment,MISSING_LIBRARIES,Library /data/user/0/my_project_package/files/../lib/libMAPSJNI.so not found.,java.lang.Throwable 
I:  at com.nokia.maps.at.a(EngineError.java:27) 
I:  at com.nokia.maps.MapsEngine.b(MapsEngine.java:367) 
I:  at com.nokia.maps.MapsEngine.a(MapsEngine.java:343) 
I:  at com.here.android.mpa.common.MapEngine.init(MapEngine.java:129) 
I:  at com.nokia.maps.br.a(MapFragmentImpl.java:126) 
I:  at com.here.android.mpa.mapping.MapFragment.init(MapFragment.java:132) 

以下是使用HereMap代碼:

gmMapFragment = new MapFragment(); 

activity.getFragmentManager().beginTransaction().add(gmCenterView.getId(), gmMapFragment, "here_map_fragment").commit(); 

gmMapFragment.init(activity, new OnEngineInitListener() { 
    @Override 
    public void onEngineInitializationCompleted(OnEngineInitListener.Error error) { 
     if (error == OnEngineInitListener.Error.NONE) { 
      gmMapFragment.getMapGesture().addOnGestureListener(gestureListener); 
      // Exceptions are thrown here!!! 

      gmMap = gmMapFragment.getMap(); 
      .... 
     } 
    } 
}; 
+0

你可以請你分享你如何在你的版本中包含HERE SDK(例如你的Gradle構建文件,其中包含HERE SDK)。你在Gradle中做過任何'packagingOptions'聲明嗎? – AndrewJC

+0

另外,請確保您以編程方式正確添加'MapFragment'。我看不到從上面的代碼初始化'gmCenterView'的位置,所以不確定它是否正確。有關詳細信息,請參閱此頁面:https://developer.here.com/mobile-sdks/documentation/android-premium/topics/dynamic-mapfragment.html – AndrewJC

回答

0

感謝您的答覆。

  1. 以下是我採用這裏映射到我的項目的步驟:

    步驟1.將「說到這裏,sdk.jar」(也稱「HERE-sdk.jar.properties」,「這裏 - sdk-javadoc.jar「)放到我的Android Studio項目的」lib「目錄中。

    步驟2.添加以下設置中的build.gradle:

    dependencies { 
        ...   
    
        compile files('libs/HERE-sdk.jar') 
    
        ... 
    } 
    
  2. 是該鏈接是,當我們開始在這裏地圖編碼,我們遵循的指示。 「gmCenterView」實際上是一個「RelativeLayout」,我們將放置地圖片段。

    public class MyView extends RelativeLayout { 
        ... 
    } 
    
    MyView gmCenterView = ... 
    
0

請升級到最新的SDK。我們用AAR文件切換了我們的部署方法,這些文件將Jar和本地庫捆綁在一起。

上面提供的內容只包含jar庫。您仍然需要將本機二進制文件添加到gradle文件中才能使用。

+0

使用最新的SDK更容易。 '{依賴編譯 (名稱: '在這裏-SDK',分機: 'AAR') }' – neilQ5

+0

這是正確的neilQ5 –

1

我想我弄清楚自己有什麼問題。這是因爲我沒有將帶有大量.so文件的「armeabi-v7a」文件夾複製到項目的「jniLib」文件夾中。對不起,我很新。

+0

最好還是遷移到我們AAR不是使用此方法的。 AAR整合要好得多 –