1

Arg ..これはイライラします:

突然 (2012 年 3 月) MyLocationOverlay.enableCompass が機能しなくなりました。Google API 14 を使用すると問題なく動作しますが、Google API 7 および Google API 8 では画面がすべて黒のままになります。

コンパス機能はそのままにしておきたいのですが、必須ではないので、今のところ無効のままにします。これはおそらく、SDK Tools 15 の上に Android SDK Tools 16 をインストールした結果だと思います...エミュレータのセットアップまたは Eclipse に問題があるのでしょうか? この問題は実際のデバイスでは発生しないと強く感じています.次のステップは、Eclipse/Android SDK の別のインストールで試してみることですが、それは別の日にします...

ご協力ありがとうございました。

ここに私のサンプル コードがあります: 最初に、onResume、私はコンパスを有効にしません... すべてが正常に動作します。次に、onPause [ホームボタンを押してアプリに再度アクセス] の後に onResume を実行すると、黒い画面が表示されます。どうしたの?

@Override
public void onCreate(Bundle state)
{
    super.onCreate(state);
    setContentView(MAP_LAYOUT);
    MapView mv = (MapView) findViewById(MAP_VIEW);
    mv.setBuiltInZoomControls(true);
    List<Overlay> mapOverlays = mv.getOverlays();
    Context c = getApplicationContext();
    mLocation = new MyLocationOverlay(c,mv);
    mapOverlays.add(mLocation);
}

@Override
public void onPause() {
    super.onPause();
    mLocation.disableCompass();
    mLocation.disableMyLocation();
    mCompassOn = true;
}

boolean mCompassOn = false;

@Override
public void onResume() {
    super.onResume();
    if( mCompassOn ) mLocation.enableCompass();
    mLocation.enableMyLocation();
}

私のマニフェストには以下が含まれます:

... <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission. ACCESS_FINE_LOCATION" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <uses-library android:name="com.google.android.maps" /> ... < /アプリケーション> ...

そして、私のレイアウトには、正しいデバッグキーストアに一致するものが含まれています:

<com.google.android.maps.MapView
    android:id="@+id/superMapView"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="3"
    android:clickable="true"
    android:apiKey="..." />

エクリプス プラットフォーム

バージョン: 3.7.0.v20110530-9gF7UHNFFt4cwE-pkZDJ7oz-mj4OSEIlu9SEv0f

ビルド ID: I20110613-1736

Android 開発ツールキット

バージョン: 16.0.1.v201112150204-238534

質問は似ています

http://groups.google.com/group/android-developers/browse_thread/thread/8928ffa71ef35f8a

でもコンパスは使い続けたい…

4

1 に答える 1

0

これは、エミュレーターのセットアップまたは Eclipse の問題でしょうか?

エミュレーターはコンパスをエミュレートしませんでした。コンパス ローズは表示されません。HOMEを押してアクティビティに戻った後でも、このサンプルプロジェクトを使用して、Android 2.1エミュレーターで私に起こることはまだあります。

黒い画面を少しタップしてみてください。ANR ダイアログが表示された場合、問題は何かがメイン アプリケーション スレッドを拘束していることです。

この問題は実際のデバイスでは発生しないと強く感じています

これは、あなたが Android デバイスを所有していないことを示唆しています。ハードウェアに近すぎるもの (GPS、コンパス用の磁束センサーなど) をエミュレーターに頼るべきではないため、エミュレーターを入手する必要があります。

getApplicationContext()また、出現するすべての を に置き換えますthisgetApplicationContext()GUI 作業には使用しないでください。

于 2012-03-18T11:24:54.827 に答える