2 つの文字列配列があり
、マップ上にポリラインを描画したい、latitude
とドキュメントによると、それはパイと同じくらい簡単です。そしてそうです。このようにポリラインを手動で追加すると、機能します。longitude
PolylineOptions rectOptions = new PolylineOptions()
.add(new LatLng(37.35, -122.0))
.add(new LatLng(37.45, -122.0))
.add(new LatLng(37.45, -122.2))
しかし、ポリラインの追加をループしようとすると問題が発生します。
rectOptions = new PolylineOptions();
for(int i = 0; i<latitude.length(); i++){
rectOptions.add(new LatLng(Long.getLong(latitude[i]), Long.getLong(longitude[i])));
// Log.d("coordinates", latitude[i]+"|"+longitude[i]);
}
なぜだかわかりjava.lang.NullPointerException
ません。同じループで問題なく動作するrectOptions.add()
ため、メソッドに問題があることはわかっています。Log.d("coordinates", latitude[i]+"|"+longitude[i]);
LogCat の出力は次のとおりです。
01-02 11:59:27.380: E/AndroidRuntime(25146): FATAL EXCEPTION: main
01-02 11:59:27.380: E/AndroidRuntime(25146): java.lang.NullPointerException
01-02 11:59:27.380: E/AndroidRuntime(25146): at com.shniv.MainActivity$1.onClick(MainActivity.java:82)
01-02 11:59:27.380: E/AndroidRuntime(25146): at android.view.View.performClick(View.java:3519)
01-02 11:59:27.380: E/AndroidRuntime(25146): at android.view.View$PerformClick.run(View.java:14140)
01-02 11:59:27.380: E/AndroidRuntime(25146): at android.os.Handler.handleCallback(Handler.java:605)
01-02 11:59:27.380: E/AndroidRuntime(25146): at android.os.Handler.dispatchMessage(Handler.java:92)
01-02 11:59:27.380: E/AndroidRuntime(25146): at android.os.Looper.loop(Looper.java:137)
01-02 11:59:27.380: E/AndroidRuntime(25146): at android.app.ActivityThread.main(ActivityThread.java:4456)
01-02 11:59:27.380: E/AndroidRuntime(25146): at java.lang.reflect.Method.invokeNative(Native Method)
01-02 11:59:27.380: E/AndroidRuntime(25146): at java.lang.reflect.Method.invoke(Method.java:511)
01-02 11:59:27.380: E/AndroidRuntime(25146): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)
01-02 11:59:27.380: E/AndroidRuntime(25146): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554)
01-02 11:59:27.380: E/AndroidRuntime(25146): at dalvik.system.NativeStart.main(Native Method)