4

私は Google マップ v2 を使用しており、現在地を特定したいと考えています。Genymotionエミュレーターを使用しています。テスト デバイスで GPS を有効にする必要があります。エミュレーターでテストしていて、LocationManager を使用しようとしている場合、エミュレーターが「null」でアクティブ化されていない場合。Eclipse の「DDMS」パースペクティブを使用して、地理位置情報をエミュレーターに送信しています。ウィンドウ → パースペクティブを開く → その他... → DDMS.しかし、すべてのフィールドをクリックできるわけではありません。

ブレッドビンが言ったように実行しましたが、まだヌルポインター例外があります ここに画像の説明を入力

`

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    map=((MapFragment)getFragmentManager().findFragmentById(R.id.map)).getMap();
    map.setMyLocationEnabled(true);
    LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
    Criteria criteria = new Criteria();
    String provider =  locationManager.getBestProvider(criteria, true);
    Location myLocation = locationManager.getLastKnownLocation(provider);
    map.setMapType(GoogleMap.MAP_TYPE_HYBRID);
    double latitude = myLocation.getLatitude();
    double longitude = myLocation.getLongitude();
    LatLng latLng = new LatLng(latitude, longitude);
    map.moveCamera(CameraUpdateFactory.newLatLng(latLng));
    map.animateCamera(CameraUpdateFactory.zoomTo(20));
    map.addMarker(new MarkerOptions().position(new LatLng(latitude, longitude)).title("You are here"));
    }`
11-20 04:28:48.056: D/dalvikvm(1645): GC_FOR_ALLOC は 226K を解放し、2% は 16823K/17076K を解放し、7 ミリ秒を一時停止し、合計 7 ミリ秒
11-20 04:28:48.332: D/dalvikvm(1645): GC_FOR_ALLOC は 309K を解放し、2% は 17029K/17364K を解放し、7 ミリ秒を一時停止し、合計 7 ミリ秒
11-20 04:28:48.412: D/dalvikvm(1645): GC_FOR_ALLOC は 260K を解放し、2% は 17282K/17568K を解放し、6 ミリ秒を一時停止し、合計 6 ミリ秒
11-20 04:28:48.496: D/dalvikvm(1645): GC_FOR_ALLOC 解放 109K、2% 解放 17546K/17784K、一時停止 10ms、合計 10ms
11-20 04:28:48.540: D/dalvikvm(1645): GC_FOR_ALLOC は 28K を解放し、17906K/18084K を 1% 解放し、6 ミリ秒を一時停止し、合計 6 ミリ秒
11-20 04:28:48.540: D/AndroidRuntime(1645): VM をシャットダウンしています
11-20 04:28:48.540: W/dalvikvm(1645): threadid=1: キャッチされない例外で終了するスレッド (group=0xa4c49648)
11-20 04:28:48.544: E/AndroidRuntime(1645): 致命的な例外: メイン
11-20 04:28:48.544: E/AndroidRuntime(1645): java.lang.RuntimeException: アクティビティ ComponentInfo を開始できません {com.example.Mymaps/com.example.Mymaps.MainActivity}: java.lang.NullPointerException
11-20 04:28:48.544: E/AndroidRuntime(1645): android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211) で
11-20 04:28:48.544: E/AndroidRuntime(1645): android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
11-20 04:28:48.544: E/AndroidRuntime(1645): android.app.ActivityThread.access$600(ActivityThread.java:141)
11-20 04:28:48.544: E/AndroidRuntime(1645): android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) で
11-20 04:28:48.544: E/AndroidRuntime(1645): android.os.Handler.dispatchMessage(Handler.java:99)
11-20 04:28:48.544: E/AndroidRuntime(1645): android.os.Looper.loop(Looper.java:137)
11-20 04:28:48.544: E/AndroidRuntime(1645): android.app.ActivityThread.main(ActivityThread.java:5103)
11-20 04:28:48.544: E/AndroidRuntime(1645): java.lang.reflect.Method.invokeNative(ネイティブメソッド)
11-20 04:28:48.544: E/AndroidRuntime(1645): java.lang.reflect.Method.invoke(Method.java:525)
11-20 04:28:48.544: E/AndroidRuntime(1645): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) で
11-20 04:28:48.544: E/AndroidRuntime(1645): com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
11-20 04:28:48.544: E/AndroidRuntime(1645): dalvik.system.NativeStart.main(ネイティブメソッド)
11-20 04:28:48.544: E/AndroidRuntime(1645): 原因: java.lang.NullPointerException
11-20 04:28:48.544: E/AndroidRuntime(1645): com.example.Mymaps.MainActivity.onCreate(MainActivity.java:33)
11-20 04:28:48.544: E/AndroidRuntime(1645): android.app.Activity.performCreate(Activity.java:5133)
11-20 04:28:48.544: E/AndroidRuntime(1645): android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
11-20 04:28:48.544: E/AndroidRuntime(1645): android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
11-20 04:28:48.544: E/AndroidRuntime(1645): ... 11 もっと見る
11-20 04:28:48.840: W/ActivityThread(1645): ClassLoader.loadClass: Thread.getContextClassLoader() によって返されるクラス ローダーは、複数のアプリケーションをホストするプロセスで失敗する場合があります。コンテキスト クラス ローダーを明示的に指定する必要があります。例: Thread.setContextClassLoader(getClass().getClassLoader());
11-20 04:45:28.501: W/ActivityThread(3967): ClassLoader.loadClass: Thread.getContextClassLoader() によって返されるクラス ローダーは、複数のアプリケーションをホストするプロセスで失敗する場合があります。コンテキスト クラス ローダーを明示的に指定する必要があります。例: Thread.setContextClassLoader(getClass().getClassLoader());
4

2 に答える 2

-1

[デバイス] ビューでデバイスが選択されていることを確認します。デバイスまたはエミュレータが選択されていないと、エミュレータ制御を使用できません。

動作しない場合は、Eclipse を閉じます。Android SDK をインストールした場所の tools/ ディレクトリに ddms シェル スクリプトがあります。

それでもうまくいかない場合は、adb kill-server を実行してから、adb start-server を実行します。adb は、SDK インストールの platform-tools/ ディレクトリにある必要があります。次に、DDMS を再試行します。

それでも問題が解決しない場合は、再起動してから DDMS を再試行してください。

于 2013-11-19T18:04:03.953 に答える