1

SKCoordinatesのリストをSKMapSurfaceviewマップに追加しようとしていSKPolylineます。実行時SKSurfaceView.addPolyline( SKPolyline )

libc から Fatal シグナル 6 SIGABRT を受け取りました。

MapActivity.java

public class MapActivity extends BaseRouteActivity 
{

    ...

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

        SKMapSurfaceView mapView = SKMapViewHolder mapHolder = (SKMapViewHolder)
                    findViewById(map_target);
        mapView = mapHolder.getMapSurfaceView();
        mapView.setMapSurfaceListener(this);

        List<SKCoordinate> coordinates = new ArrayList<SKCoordinate>();
        coordinates.add( new SKCoordinate( 52.390846319385254, 4.643051476057394 ) );
        coordinates.add( new SKCoordinate( 52.391088576419605, 4.643212408598288 ) );

        SKPolyline polyline = new SKPolyline();
        polyline.setNodes(coordinates);

        mapView.addPolyline(polyline);   
    }

    ...
}

Logcat エラー

8009-8009/com.my.app A/libc﹕ Fatal signal 6 (SIGABRT) at 0x00001f49 (code=-6), thread 8009 (y.app)

Android が UI ブロッキング関数ですべてのネットワーク トラフィックを強制終了することを読んだので、 を でラップしようとしましたが、役に立ちませんでしaddPolylineた。UIThread/AsyncTask

私は何が欠けていますか?

編集#1:LogCatをさらに掘り下げた後、次のエラーが表示されます:

JNI WARNING: GetFloatArrayElements received null array
in Lcom/skobbler/ngx/map/MapRenderer;.addobjectpolyline:([D[D[F[FIIII)I (GetFloatArrayElements)
4

1 に答える 1

2

これは SDK の問題であり、次のリリースで修正される予定です。クラッシュは、SKPolyline オブジェクトをスタイリングするための color プロパティと OutlineColor プロパティが指定されていない場合に発生します。クラッシュを回避するには、次のコードのように、ポリラインのスタイル プロパティを指定する必要があります。

List<SKCoordinate> coordinates = new ArrayList<SKCoordinate>(); 
coordinates.add( new SKCoordinate( 52.390846319385254, 4.643051476057394 ) ); 
coordinates.add( new SKCoordinate( 52.391088576419605, 4.643212408598288 ) ); 

SKPolyline polyline = new SKPolyline(); 
polyline.setNodes(coordinates); 

// set styling properties (crash will occur if color or outlineColor are not specified) 
polyline.setLineSize(9); 
polyline.setOutlineSize(4); 
polyline.setColor(new float[] {0, 0, 0, 1}); 
polyline.setOutlineColor(new float[] {0, 0, 0, 1}); 
polyline.setOutlineDottedPixelsSolid(6); 
polyline.setOutlineDottedPixelsSkip(0); 

mapView.addPolyline(polyline);
于 2014-08-07T15:03:35.273 に答える