2014-10-31 2 views
2

Я работаю с API Skobbler Map для Android, и это было очень хорошо. После официального «Как» я смог реализовать карту в своем приложении. Чем я могу заставить приложение загрузить карту и использовать ее в автономном режиме.Ошибка в Skobbler Android

Но моя цель состоит в том, чтобы иметь предварительно подключенную автономную карту. Я сделал все шаги от «как», но это не будет работать, я получаю ошибку

10-31 06:54:50.347: D/SKMaps(15168): 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] 
10-31 06:54:50.357: E/BitmapFactory(15168): Unable to decode stream: java.io.FileNotFoundException: /storage/emulated/0/Android/data/com.example.myskobblermapbasic/files/SKMaps/res/xhdpi/icon_map_popup_navigate.png: open failed: ENOENT (No such file or directory) 
10-31 06:54:50.367: E/BitmapFactory(15168): Unable to decode stream: java.io.FileNotFoundException: /storage/emulated/0/Android/data/com.example.myskobblermapbasic/files/SKMaps/res/xhdpi/icon_map_popup_arrow.png: open failed: ENOENT (No such file or directory) 
10-31 06:54:50.377: D/SKMaps(15168): SKMapSurfaceView---- centerMapOnPosition [19.8171,41.3294] 
10-31 06:54:50.377: D/SKMaps(15168): SKMapSurfaceView---- ON RESUME 
10-31 06:54:50.527: D/SKMaps(15168): MapRenderer----onSurfaceCreated 
10-31 06:54:50.527: W/Settings(15168): Setting always_finish_activities has moved from android.provider.Settings.System to android.provider.Settings.Global, returning read-only value. 
10-31 06:54:50.527: D/SKMaps(15168): MapRenderer---- LinInitialized = true 
10-31 06:54:50.527: D/SKMaps(15168): MapRenderer----SetInitSurfaceSetup 
10-31 06:54:50.527: E/Adreno-ES11(15168): <qglDrvAPI_glDeleteTextures:371>: GL_INVALID_VALUE 
10-31 06:54:50.527: A/libc(15168): Fatal signal 11 (SIGSEGV) at 0x00000004 (code=1), thread 15226 (GLThread 664) 

, кажется, что как только я вставляю автономную карту на молнии, ошибка генерироваться.

Вот мой MainActivity:

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     SKLogging.enableLogs(true); 
     File externalDir = getExternalFilesDir(null); 

     // determine path where map resources should be copied on the device 
     if (externalDir != null) { 
      mapResourcesDirPath = externalDir + "/SKMaps/"; 
     } else { 
      mapResourcesDirPath = getFilesDir() + "/SKMaps/"; 
     } 

     new SKPrepareMapTextureThread(this, mapResourcesDirPath, "SKMaps.zip", this).start(); 
    } 

    @Override 
    public void onMapTexturesPrepared(boolean prepared) { 
     if(prepared){ 
      initializeLibrary(); 
      startActivity(new Intent(MainActivity.this, MapActivity.class)); 
     }else{ 
      Toast.makeText(MainActivity.this, "Map resources are not prepared", Toast.LENGTH_SHORT).show(); 
     } 
    } 

    /** 
    * Initializes the SKMaps framework 
    */ 
    private void initializeLibrary() { 
     SKMapsInitSettings initMapSettings = new SKMapsInitSettings(); 
     // set path to map resources and initial map style 
     initMapSettings.setMapResourcesPaths(mapResourcesDirPath, 
       new SKMapViewStyle(mapResourcesDirPath + "/outdoorstyle/", "outdoorstyle.json")); 

     // EXAMPLE OF ADDING PREINSTALLED MAPS 
     initMapSettings.setPreinstalledMapsPath(mapResourcesDirPath + "/PreinstalledMaps"); 
     //initMapSettings.setConnectivityMode(SKMaps.CONNECTIVITY_MODE_OFFLINE); 

     SKMaps.getInstance().initializeSKMaps(this, initMapSettings, API_KEY); 
    } 

и мой MapActivity:

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_map); 

     SKMapViewHolder mapViewGroup = (SKMapViewHolder) findViewById(R.id.map_surface_holder); 
     mapView = mapViewGroup.getMapSurfaceView(); 
     mapView.centerMapOnPosition(new SKCoordinate(19.8171, 41.3294)); 
    } 

    @Override 
    protected void onPause() { 
     super.onPause(); 
     mapView.onPause(); 
    } 

    @Override 
    protected void onResume() { 
     super.onResume(); 
     mapView.onResume(); 
    } 

    @Override 
    protected void onDestroy() { 
     super.onDestroy(); 
     SKMaps.getInstance().destroySKMaps(); 
     android.os.Process.killProcess(android.os.Process.myPid()); 
    } 

Спасибо,

+0

Проверьте, если файлы/иконки в папке xhdpi видны из проекта (обновления), а затем чистые и перестроить проект – SylviA

ответ

2

Проверьте SKMaps.zip, содержащий следующие файлы:

SKMaps/res/xhdpi/icon_map_popup_arrow.png 
SKMaps/res/xhdpi/icon_map_popup_navigate.png 

Если нет, то u должен добавить их.

+0

я сделал проверку для файлов, и они на самом деле существуют, поэтому я не мог понять ошибку –

1

Попробуйте инициализировать карту с

new SKPrepareMapTextureThread(this, new File(yourMapPathHere).getParent(), "SKMaps.zip", this).start(); 
Смежные вопросы