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

Posted

技术标签:

【中文标题】Android:为啥 native_start 在 Android 2.3.1 模拟器上的 startNavigating() 中失败?【英文标题】:Android : why does native_start fails in startNavigating() on Android 2.3.1 emulator?Android:为什么 native_start 在 Android 2.3.1 模拟器上的 startNavigating() 中失败? 【发布时间】:2012-04-06 23:18:03 【问题描述】:

我正在使用 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) 中返回的位置对象在 2.3.1 上始终为 null。

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

更麻烦-groups.google.com/forum/?fromgroups=#!topic/adt-dev/Z8NKJKyVmts

以上是关于Android:为啥 native_start 在 Android 2.3.1 模拟器上的 startNavigating() 中失败?的主要内容,如果未能解决你的问题,请参考以下文章

为啥android项目输出在Android模拟器和硬件设备中不同

为啥蓝牙在android中需要DBUS通信方式?

从 Android Studio 运行时,为啥 Android 应用程序会在后台启动?

为啥我们在 android xml 文件中指定命名空间?

为啥在android应用程序中解析xml时出现nullpointerexception?

为啥Android找不到android.graphics.OpenGLContext?