Skobbler Maps在Android上显示黑屏

4

我正在使用Skobbler SDK 2.3.0版本,目标系统为Lollipop,在Nexus 5和Galaxy S4上进行测试,并在Android Studio 1.0.2上构建。

我有一个带有导航抽屉和片段的MainActivity。我在MainActivity中初始化Skobbler并加载显示地图的片段。然而,我只能看到一个黑屏,在右下角有“Powered by Scout OSM”的水印。单击和双击都可以被注册,但如果我捏合缩放,应用程序会崩溃。

在应用程序崩溃之前,我没有在logcat中看到任何错误信息。有人可以帮忙吗?

项目结构:

  • app/libs/SKMaps.jar
  • app/src/main/assets/SKMaps.zip
  • app/src/main/jniLibs/armeabi/libngnative.so
  • app/src/main/jniLibs/armeabi-v7a/libngnative.so
  • app/src/main/jniLibs/x86/libngnative.so

build.grade:

dependencies {
...
...
compile files('libs/SKMaps.jar')
}

logcat

01-05 22:58:42.835 26785-26785/com.example.android I/MainActivity﹕ onCreate 01-05 22:58:42.869 26785-26785/com.example.android I/System.out﹕ Item selected in navigation drawer 01-05 22:58:42.895 26785-26785/com.example.android I/MainActivity﹕ Adding login fragment 01-05 22:58:42.895 26785-26785/com.example.android I/MainActivity﹕ Done 01-05 22:58:42.895 26785-26785/com.example.android I/MainActivity﹕ Initialising Skobbler 01-05 22:58:42.899 26785-26785/com.example.android I/MainActivity﹕ Start initializeLibrary() 01-05 22:58:42.899 26785-26785/com.example.android D/SKMaps﹕ SKMapInitSettings---- Map style [/storage/emulated/0/Android/data/com.example.android/files/SKMaps/daystyle/ , daystyle.json ,-1] 01-05 22:58:42.899 26785-26785/com.example.android D/SKMaps﹕ SKVersionManager----setMapUpdateListener - com.example.android.MainActivity@1c8a98bc 01-05 22:58:42.899 26785-26785/com.example.android I/MainActivity﹕ End initializeLibrary() 01-05 22:58:42.899 26785-26785/com.example.android I/MainActivity﹕ Skobbler initialised 01-05 22:58:42.899 26785-26785/com.example.android I/MainActivity﹕ onCreate end ... 01-05 22:58:55.790 26785-26785/com.example.android D/SKMaps﹕ SKMapSurfaceView----SKMapSurfaceView constructor 01-05 22:58:55.790 26785-26785/com.example.android D/SKMaps﹕ SKMapSurfaceView----os model Nexus 5 01-05 22:58:55.797 26785-26785/com.example.android D/SKMaps﹕ MapRenderer----Set map density 3.0 01-05 22:58:55.800 26785-26785/com.example.android D/SKMaps﹕ SKMapSurfaceView---- ON PAUSE 01-05 22:58:55.803 26785-26785/com.example.android D/SKMaps﹕ SKMapSurfaceView----Saved map cache state [ Map Region zoom=17.0 center= [13.385000228881836,52.51665115356445]] [Display mode=MODE_2D] [Follower mode=NONE] [Compass shown=false Position = [0.0 ,0.0] ] [Rotation=true ] [Panning=true][Zooming=true] [Bearing=0.0] [Annotations=0] 01-05 22:58:55.811 26785-26785/com.example.android E/BitmapFactory﹕ Unable to decode stream: java.io.FileNotFoundException: null/res/xhdpi/icon_map_popup_navigate.png: open failed: ENOENT (No such file or directory) 01-05 22:58:55.813 26785-26785/com.example.android E/BitmapFactory﹕ Unable to decode stream: java.io.FileNotFoundException: null/res/xhdpi/icon_map_popup_arrow.png: open failed: ENOENT (No such file or directory) 01-05 22:58:55.822 26785-26785/com.example.android D/SKMaps﹕ SKMapSurfaceView---- centerMapOnPosition [19.8171,41.3294]

这段文本是关于IT技术的日志记录,其中记录了应用程序在创建、初始化Skobbler并加载地图时的过程。同时也记录了一些错误信息,例如无法找到某些文件。

请耐心等待,logcat 将会显示。 - TooCool
嗨,Adellah,你是什么意思? - terencey
@Abdellah 我的意思是,logcat中没有显示任何错误来指示问题所在。我的无关日志输出正常显示。 - terencey
@SylviA 不好意思,我正在使用2.3版本。更具体地说,我从SKMaps_Android_2.3.0_withDemo.zip获取了我的文件。 - terencey
你看过这个问题吗:http://stackoverflow.com/questions/25906499/error-displaying-map-after-upgrading-to-skobbler-2-2-0 检查初始化过程,可能是类似的问题。 - SylviA
显示剩余3条评论
1个回答

9
在地图初始化后,你缺少了一个语句。
mapView.onResume();

如果你看一下Skobbler的例子,你会发现他们在一个Activity中复制纹理,在另一个Activity中显示地图。显示地图的Activity在Activity回调中调用mapView.onResume()和mapView.onPause()。如果你想在同一个Activity中加载纹理并显示地图,你需要在资源被复制且地图被初始化后调用mapView.onResume()。

谢谢@Joris!我终于可以看到地图了。 - terencey
看起来我有一个类似的错误。你把mapView.onResume()放在哪里了? - Distwo
@Distwo 在相应的Activity回调中,当您将资源复制到另一个正在显示地图的活动中时,请调用它。否则,请在复制资源后调用它。 - Joris
@Joris 我尝试了,但没有成功...可能对我来说是个不同的问题。不过还是谢谢你! - Distwo
@Distwo 真可惜:-( 你可以查看Skobbler示例,也许你可以让它工作并通过那种方式解决你的问题? - Joris

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接