2013-04-23 34 views
9

Chúng tôi đã nhận được báo cáo sự cố trên một số thiết bị khi người dùng mở Hoạt động gọi phương thức getLastKnownLocation của người quản lý vị trí. Chúng tôi đã yêu cầu tất cả các điều khoản cần thiết trong manifest ứng dụng của chúng tôi:SecurityException khi gọi getLastKnownLocation

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

Đây là stack trace:

java.lang.RuntimeException: Unable to resume activity {com.projectname/com.projectname.ui.AtmFinderActivity}: java.lang.SecurityException: invalid package name: com.google.android.gms 
     at android.app.ActivityThread.performResumeActivity(ActivityThread.java) 
     at android.app.ActivityThread.handleResumeActivity(ActivityThread.java) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java) 
     at android.app.ActivityThread.access$600(ActivityThread.java) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java) 
     at android.os.Handler.dispatchMessage(Handler.java) 
     at android.os.Looper.loop(Looper.java) 
     at android.app.ActivityThread.main(ActivityThread.java) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java) 
     at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.SecurityException: invalid package name: com.google.android.gms 
     at android.os.Parcel.readException(Parcel.java) 
     at android.os.Parcel.readException(Parcel.java) 
     at android.location.ILocationManager$Stub$Proxy.getLastLocation(ILocationManager.java) 
     at android.location.LocationManager.getLastKnownLocation(LocationManager.java) 
     at android.privacy.surrogate.PrivacyLocationManager.getLastKnownLocation(PrivacyLocationManager.java) 
     at com.projectname.util.LocationUtils.getLastKnownLocation(SourceFile:48) 
     at com.projectname.ui.AtmFinderFragment.initMapIfNeeded(SourceFile:401) 
     at com.projectname.ui.AtmFinderFragment.onGooglePlayServicesAvailable(SourceFile:187) 
     at com.projectname.maps.GoogleMapServicesUtil.getGooglePlayServicesStatus(SourceFile:40) 
     at com.projectname.ui.AtmFinderFragment.onResume(SourceFile:149) 
     at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:917) 
     at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1080) 
     at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1062) 
     at android.support.v4.app.FragmentManagerImpl.dispatchResume(SourceFile:1820) 
     at android.support.v4.app.FragmentActivity.onPostResume(SourceFile:412) 
     at com.actionbarsherlock.app.SherlockFragmentActivity.onPostResume(SourceFile:69) 
     at android.app.Activity.performResume(Activity.java) 
     ... 13 more 

Dưới đây là phương pháp có liên quan từ LocationUtils:

public static Location getLastKnownLocation(Context context) { 
    if (context != null) { 
     LocationManager lm = (LocationManager) context.getSystemService(
       Context.LOCATION_SERVICE); 

     // Get our last known location 
     Location location = lm.getLastKnownLocation(
       LocationManager.NETWORK_PROVIDER); 
     if (location == null) { 
      location = lm.getLastKnownLocation(
        LocationManager.GPS_PROVIDER); 
     } 
     return location; 
    } 
    return null; 
} 

Chúng tôi đã không thể tái tạo vấn đề này trên bất kỳ thiết bị nào chúng tôi có trong tay. Đã có ai gặp vấn đề này trước đây chưa?

+3

Đây chỉ là suy đoán, nhưng có mùi như một ROM tùy chỉnh có một số vấn đề với Dịch vụ của Google Play đối với tôi. Tôi muốn tìm hiểu sâu hơn về các thiết bị mà bạn đang gặp sự cố, họ là gì, vòng quay Android nào họ đang chạy và họ có một số loại ROM tùy chỉnh hoặc tùy chỉnh khác đang can thiệp vào Google Play không? –

+0

@CharlieCollins đã đồng ý. Hầu hết các thiết bị mà chúng tôi đã gặp phải với sự cố này là Android 4.2.2 của Galaxy Nexus đang chạy. Tôi chưa có bất kỳ thông tin nào về bản dựng cụ thể mà họ đang chạy. – twaddington

+1

Chúng tôi cũng đang gặp sự cố này và có vẻ như đó là do ROM tùy chỉnh. –

Trả lời

0

vẻ với tôi như bạn có thể ngăn chặn nó bằng cách sử dụng require feature

Các vấn đề liên quan