【问题标题】:Skobbler Maps on Android showing black screenAndroid 上的 Skobbler 地图显示黑屏
【发布时间】:2015-03-03 02:50:37
【问题描述】:

我正在使用 Skobbler SDK 2.3.0,针对 Lollipop,在 Nexus 5 和 Galaxy S4 上进行测试,在 Android Studio 1.0.2 上构建。

我有一个带有导航抽屉和片段的 MainActivity。我在 MainActivity 中初始化 Skobbler 并加载显示地图的片段。但是,我只得到一个黑屏,右下角有水印“由 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]

【问题讨论】:

  • 等待logcat显示出来
  • 嗨,Adellah,你是什么意思?
  • 嗨,我的意思是你必须在 logcat 中看到一些东西,因为当 logcat 不显示任何内容时,这是 AS 中的一个错误..
  • @Abdellah 我的意思是,logcat 中没有显示错误来指示问题所在。我不相关的日志输出显示正常。
  • 我不同意 App Crash => 错误

标签: android skmaps


【解决方案1】:

地图初始化后,您缺少一条语句:

mapView.onResume();

如果您查看 Skobbler 中的示例,您会发现他们将纹理复制到一个 Activity 中,并在另一个中显示地图。显示地图的ActivityActivity 回调中调用mapView.onResume()mapView.onPause()。如果要加载纹理并在同一Activity 中显示地图,则必须在复制资源并初始化地图后调用mapView.onResume()

【讨论】:

  • 谢谢@Joris!我终于可以看到地图了。
  • 看起来我有类似的错误。你在哪里放 mapView.onResume();
  • @Distwo 在相应的活动回调中,当您在另一个活动中复制资源时,然后是正在显示地图的活动。否则在复制资源后调用它。
  • @Joris 我试过了,但没有运气......对我来说可能是一个不同的问题。不过谢谢!
  • @Distwo pitty :-( 你可以看一下 Skobbler 的例子,也许你可以让那个例子工作并找出你的问题?
猜你喜欢
  • 2017-03-26
  • 1970-01-01
  • 1970-01-01
  • 2018-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多