2012-04-06 68 views
2

我正在使用Android 2.3.1项目来使用LocationManager.GPS_PROVIDER获取当前位置。Android:为什么native_start在Android 2.3.1模拟器的startNavigating()中失败?

这是我的代码

@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() 

2.3.1上的onLocationChanged(location loc)返回的位置对象始终为空。

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

回答

0

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

0

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

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

+0

这真的很奇怪。 – coredump 2013-05-14 01:13:58

+0

更麻烦 - https://groups.google.com/forum/?fromgroups=#!topic/adt-dev/Z8NKJKyVmts – satyajit 2013-05-14 19:10:08