2016-08-12 19 views
0

私はMapBoxを使用しており、ユーザーのジオコードが設定されているピンを示しています。プログラムはすべてのapis上で正常に動作します... 19を除いて黒い画面です。私はここにドキュメント以下のようにそれを作るのかわからないんだけど:ピンを持つ地図を表示するMapBox

のGradle:

compile ('com.mapbox.mapboxsdk:mapbox-android-sdk:[email protected]'){ 
    transitive=true 
} 
compile('com.mapbox.mapboxsdk:mapbox-android-services:[email protected]') { 
    transitive = true 
} 

https://www.mapbox.com/android-sdk/examples/marker/

https://github.com/mapbox/mapbox-android-demo/blob/master/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/annotations/CustomInfoWindowActivity.java

を私は以下の私のコードのいくつかを持っています

地図を見る

バック

コールマップの準備ができている:

public void onMapReady(MapboxMap mapboxMap) { 
    // Relevant sources shown only 
    mapboxMap.setStyleUrl(Style.MAPBOX_STREETS); 
    mapboxMap.setOnInfoWindowClickListener(this); 
    CameraPosition cameraPosition = new CameraPosition.Builder() 
      .target(geocodeLatLng) 
      .zoom(15) 
      .bearing(0) 
      .build(); 
    mapboxMap.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); 
    Marker position = mapboxMap.addMarker(new MarkerOptions().position(geocodeLatLng).title(location)); 
    position.setSnippet(address); 
    position.showInfoWindow(mapboxMap, mapView); 
} 

レイアウトファイル:

<?xml version="1.0" encoding="utf-8"?> 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       xmlns:mapbox="http://schemas.android.com/apk/res-auto" 
       android:orientation="vertical"> 

    <com.mapbox.mapboxsdk.maps.MapView 
     android:id="@+id/mapView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     mapbox:style_url="mapbox://styles/mapbox/streets-v9" 
     mapbox:zoom="11"/> 


</RelativeLayout> 

私が欠けている何かありますか?私はAndroidManifest.xmlとgradleの変更も行っています。より新しいAPIで動作することは明らかです。ウェブサイトはAPI 15+からサポートしていますか?

+0

あなたが掲示できる有用なlogcat情報はありますか?おそらくそうではなく、ただチェックしている。 – RobLabs

答えて

0

理由はわかりませんが、これが修正されました。以前私が一番上に私のMapFragmentActivityでこれをやっていた:

MapboxAccountManager.start(this, getString(R.string.access_token)); 

は、それがMainActivity.javaでアプリの負荷に行われるべきであることを(注意深くドキュメントを読む)判明します。私はそれをし、それは働いた。なんらかの理由で、あなたが問題のクラスでsetContentView(R.layout.activity_main);の前にこれを行う場合、より新しいデバイス(区別がつきません)でのみ動作します。

+0

マップボックスアクセストークンは、マップボックスマップが使用される前に設定する必要があります。これには、レイアウトに追加することも含まれます。そのため、 'setContentView'の前に' MapboxAccountManager'を使う必要があります。技術的には、あらかじめそのメソッドをどこでも呼び出すことができます。そうしないと、nullエラーが発生します。あなたがそれを理解して聞いてうれしい! – cammace

+1

私は 'setContentView'の前にそれを持っていました。しかし、私はそれがFragmentActivityにありました。私はアプリの負荷にそれを変更し、それが働いた。 – KVISH

関連する問題