6

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

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

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

它抛出一个异常

android.view.InflateException: Binary XML file line #44: Error inflating class com.skobbler.ngx.map.SKMapViewHolder

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

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

知道出了什么问题吗?

4

4 回答 4

2

我只是有同样的问题。

一些想法(这就是我让它工作的方式)

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

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

于 2014-06-04T01:37:42.310 回答
1

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

(此外,如有疑问,请在设备上手动卸载应用程序,然后再次运行。)

于 2014-07-14T13:26:18.767 回答
1

在 Android Studio 项目中,原生 .so 库应该放在 /app/src/main/ 文件夹中以便被识别: 在此处输入图像描述

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

Android Studio 中的 JNI 文件夹

在 Android Studio 中添加 .so 文件

于 2014-06-17T09:31:58.147 回答
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作为文件依赖
于 2014-06-05T10:42:29.020 回答