1

Arg..这令人沮丧:

突然(2012 年 3 月)MyLocationOverlay.enableCompass 不起作用。使用 Google APIs 14 可以正常工作,但在 Google APIs 7 和 Google APIs 8 上使屏幕全黑。

我想保留指南针功能,但由于它不是必需的,我暂时将其禁用。我认为这可能是在 SDK 工具 15 上安装 Android SDK 工具 16 的结果......也许这是我的模拟器设置或 Eclipse 的问题?我有一种强烈的感觉,这个问题不会在真实设备上发生。我的下一步将是在另一个安装的 Eclipse/Android SDK 上尝试它,但那是另一天的事了……

谢谢您的帮助。

这是我的示例代码: 起初,onResume,我没有启用指南针...一切正常。第二个,onPause后的onResume【点击home键然后重新访问app】,出现黑屏。这是怎么回事?

@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

内部版本号:I20110613-1736

安卓开发工具包

版本:16.0.1.v201112150204-238534

问题类似于

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

但我想继续使用指南针...

4

1 回答 1

0

也许这是我的模拟器设置或 Eclipse 的问题?

模拟器从不模拟指南针。罗盘玫瑰根本就不会出现。这仍然是我在 Android 2.1 模拟器上使用此示例项目时发生的情况,即使在按下 HOME 并返回活动之后也是如此。

您可以尝试在黑屏上轻点一下。如果您得到一个 ANR 对话框,那么问题是某些东西正在占用主应用程序线程。

我有强烈的感觉这个问题不会在真实设备上发生

这表明您没有 Android 设备,否则您可能已经尝试过了。你需要一个,因为你不应该依赖模拟器来处理太接近硬件的东西(例如,GPS,指南针的磁通量传感器)。

此外,将所有出现的 替换getApplicationContext()this。切勿getApplicationContext()用于 GUI 工作。

于 2012-03-18T11:24:54.827 回答