Android:为什么native_start在Android 2.3.1模拟器上的startNavigating()失败?

时间:2012-04-06 23:18:03

标签: java android android-emulator geolocation gps

我正在使用Android 2.3.1项目使用LocationManager.GPS_PROVIDER获取当前位置。

这是我的代码

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    LocationManager locManager = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
    LocationListener locListener = new BTILocationListener();

    locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locListener);
}

public class BTILocationListener implements LocationListener {

    @Override
    public void onLocationChanged(Location loc) {
        Log.d("BTILocation", "Inside onLocationChanged() ---");

        if (loc != null) {
            double latitude = loc.getLatitude();
            double longitude = loc.getLongitude();

            String locationstr = "Latitude = " + latitude + " longitude = "  +longitude;

            Log.d("BTILocation", locationstr);



        }
    }

    @Override
    public void onProviderDisabled(String provider) {
        Toast.makeText(getApplicationContext(), "GPS Disabled", Toast.LENGTH_SHORT).show();
        Log.w("BTILocation", "GPS is Disabled");
    }

    @Override
    public void onProviderEnabled(String provider) {
        Toast.makeText(getApplicationContext(), "GPS Enabled", Toast.LENGTH_SHORT).show();
        Log.w("BTILocation", "GPS is Enabled");
    }

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
        // TODO Auto-generated method stub

    }

}

我使用的权限集 -

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>

我使用开放的telnet连接

telnet localhost 5544
geo fix 12 22

我在logcat上看到以下错误 -

E/GpsLocationProvider(   75): native_start failed in startNavigating()

在onLocationChanged(location loc)中返回的location对象在2.3.1上始终为null。

相同的代码在Android 2.1和4.0中运行良好。请帮我解决这个问题,我试过谷歌搜索,但我无法在任何地方找到解决方案。谢谢!我没有与Android API 7级兼容的Google API,有谁知道我可以下载它?

2 个答案:

答案 0 :(得分:0)

似乎这是平台2.3的已知问题我使用android SDK管理器下载了针对平台2.2和2.1的Google API。只需检查过时的复选框即可下载所需的包。

答案 1 :(得分:0)

我在API级别17中遇到了与4.4.2相同的错误。但这是零星的,并不是很清楚是什么解决了这个问题。我做了重启模拟器,系统所有常见的东西,没有任何帮助。

但我打开了另一个模拟器并修复了它们。