私のアプリケーションはURLからJSON
を取得し、ユーザーの場所から選択したマーカーの場所への方向を解析します。 デバッグでは、マップにポリラインを追加したときにアプリケーションが停止する方法で、送り先と送り元が正しいことがわかります。ここでは、コードは次のとおりです。Androidポリラインをマップエラーに追加する
for(int z = 0; z<list.size()-1;z++){
LatLng src= list.get(z);
LatLng dest= list.get(z+1);
PolylineOptions line= new PolylineOptions()
.add(src, dest)
.width(2)
.color(Color.BLUE).geodesic(true);
mMap.addPolyline(line);
}
そしてここでは、編集されたlogcatです:
05-20 11:44:04.698 26190-27044/com.example.marco.progettoquinta E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #2
Process: com.example.marco.progettoquinta, PID: 26190
java.lang.RuntimeException: An error occurred while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:309)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.IllegalStateException: Not on the main thread
at maps.f.g.b(Unknown Source)
at maps.z.D.a(Unknown Source)
at maps.ag.t.a(Unknown Source)
at uz.onTransact(:com.google.android.gms.DynamiteModulesB:137)
at android.os.Binder.transact(Binder.java:387)
at com.google.android.gms.maps.internal.IGoogleMapDelegate$zza$zza.addPolyline(Unknown Source)
at com.google.android.gms.maps.GoogleMap.addPolyline(Unknown Source)
at com.example.marco.progettoquinta.MapsActivity.drawPath(MapsActivity.java:210)
at com.example.marco.progettoquinta.JSONParser.getJSONFromUrl(JSONParser.java:80)
at com.example.marco.progettoquinta.JSONParser.doInBackground(JSONParser.java:35)
at com.example.marco.progettoquinta.JSONParser.doInBackground(JSONParser.java:18)
at android.os.AsyncTask$2.call(AsyncTask.java:295)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
これは、ソースが不明であることを述べているが、それは実際には正しいのです。 もちろんこのメソッドは、AsyncTask.
に実装されています。エラーはどこですか?
あなたの 'mMap'に' PolylineOptions'を追加するためのコードを試しました。 'src'と' dest'をハードコードされた 'LatLng'sに変更しました。このエラーを引き起こす原因が他にもあるかもしれません。あなたは 'src'と' dest'で得た値のログを追加しようとしましたか?さらにスニペットとフルログを投稿できる場合に役立ちます。 –
2 LatLongを強制しようとしますが、うまくいきません。どうしたの?ハードコーディングではどういう意味ですか?ところで、私はAsynchタスクからJsonを取得し、次にメソッドiが雇用されたメインアクティビティに値を渡します。私はそれがスレッドの問題だと思っていますが、何をすべきか分かりません。 –
'.add()'を '.add(new LatLng(-34,151)、new LatLng(-34,151.1))'コードを実行しました。私が地図をチェックしたとき(座標はSydney、Auの近く)、私はその線を見る。あなたは 'src'と' dest'を得るログを入れてみましたか?正しい値を取得しているかどうか確認してください。 –