将Skobbler Map添加到我的空App中

时间:2014-06-03 07:50:30

标签: android buildpath skmaps

我正在尝试使用Skobbler建立一个新项目。 我已经集成了SKMaps.jar并将其放入构建路径中。我正在使用带有gradl的AndroidStudio。

现在的问题是:我打电话的那一刻

SKMaps.getInstance().initializeSKMaps(this, initMapSettings, getString(R.string.skobbler_api_key));

它抛出异常

  

android.view.InflateException:二进制XML文件行#44:错误   膨胀类com.skobbler.ngx.map.SKMapViewHolder

  

无法从加载程序加载ngnative   dalvik.system.PathClassLoader [DexPathList [[zip文件   " /data/app/de.aeins.theswap.swap-1.apk"],nativeLibraryDirectories = [/数据/ APP-LIB / de.aeins.theswap.swap-1,   / vendor / lib,/ system / lib]]]:findLibrary返回null

我的项目根目录中有一个lib文件夹,在单独的文件夹中有SKMaps.jar和3个libngnative.so文件。

知道出了什么问题吗?

4 个答案:

答案 0 :(得分:2)

我遇到了同样的问题。

一些想法(这就是我如何使它工作)

1)确保在properties-> Java Build Path-> Libraries中添加SKMaps.jar文件,并在Order and Export中选择它

2)我在演示应用程序中意识到SplashActivity正在进行大量工作 - 特别是初始化库。我假设必须在布局在Activity中膨胀之前完成此操作。我最终在我的应用程序中放了一个SplashActivity,在进入显示地图的Activity之前初始化那里的库,现在它可以工作了。

答案 1 :(得分:1)

我遇到了同样的问题。修正了:

  1. 将lib / armeabi / libngnative.so,lib / armeabi-v7a / libngnative.so和lib / x86 / libngnative.so放入zip文件中。
  2. 将zipfile重命名为libngnative.jar
  3. 将jarfile移至app / libs
  4. 将jarfile添加为文件依赖

答案 2 :(得分:1)

在Android Studio项目中,应将原生.so库放在/ app / src / main /文件夹中以便识别: enter image description here

这可能是您崩溃的原因。 stackoverflow.com上报告了一些类似的问题:

JNI folder in Android Studio

Adding a .so file in Android Studio

答案 3 :(得分:1)

将地图初始化部分放入最初启动的活动中是重要的,就像在Skobbler AndroidOpenSourceDemo应用程序的SplashActivity中一样。即初始化必须在它自己的启动活动中完成,然后从那里开始一个新的(主)活动,即显示地图(SKMapViewHolder xml元素)。

(另外,如果有疑问,请在再次运行之前在设备上手动卸载应用程序。)