2017-02-03 6 views
2

У меня есть ошибка, как это:Класс не найден, когда демаршаллизации: com.google.android.gms.location.LocationResult

02-03 16:41:18.294 994-1830/? E/Parcel: Class not found when unmarshalling: com.google.android.gms.location.LocationResult 
            java.lang.ClassNotFoundException: com.google.android.gms.location.LocationResult 
             at java.lang.Class.classForName(Native Method) 
             at java.lang.Class.forName(Class.java:309) 
             at java.lang.Class.forName(Class.java:273) 
             at android.os.Parcel.readParcelableCreator(Parcel.java:2281) 
             at android.os.Parcel.readParcelable(Parcel.java:2245) 
             at android.os.Parcel.readValue(Parcel.java:2152) 
             at android.os.Parcel.readArrayMapInternal(Parcel.java:2485) 
             at android.os.BaseBundle.unparcel(BaseBundle.java:221) 
             at android.os.BaseBundle.containsKey(BaseBundle.java:269) 
             at android.content.Intent.hasExtra(Intent.java:4924) 
             at com.android.server.am.ActiveServices.startServiceLocked(ActiveServices.java:398) 
             at com.android.server.am.a.startServiceLocked(Unknown Source) 
             at com.android.server.am.ActivityManagerService.startServiceInPackage(ActivityManagerService.java:15737) 
             at com.android.server.am.PendingIntentRecord.sendInner(PendingIntentRecord.java:324) 
             at com.android.server.am.PendingIntentRecord.send(PendingIntentRecord.java:219) 
             at android.content.IIntentSender$Stub.onTransact(IIntentSender.java:64) 
             at android.os.Binder.execTransact(Binder.java:463) 
            Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.location.LocationResult" on path: DexPathList[[zip file "/system/framework/XposedBridge.jar"],nativeLibraryDirectories=[/vendor/lib, /system/lib]] 
             at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) 
             at java.lang.ClassLoader.loadClass(ClassLoader.java:511) 
             at java.lang.ClassLoader.loadClass(ClassLoader.java:469) 
             at java.lang.Class.classForName(Native Method)  
             at java.lang.Class.forName(Class.java:309)  
             at java.lang.Class.forName(Class.java:273)  
             at android.os.Parcel.readParcelableCreator(Parcel.java:2281)  
             at android.os.Parcel.readParcelable(Parcel.java:2245)  
             at android.os.Parcel.readValue(Parcel.java:2152)  
             at android.os.Parcel.readArrayMapInternal(Parcel.java:2485)  
             at android.os.BaseBundle.unparcel(BaseBundle.java:221)  
             at android.os.BaseBundle.containsKey(BaseBundle.java:269)  
             at android.content.Intent.hasExtra(Intent.java:4924)  
             at com.android.server.am.ActiveServices.startServiceLocked(ActiveServices.java:398)  
             at com.android.server.am.a.startServiceLocked(Unknown Source)  
             at com.android.server.am.ActivityManagerService.startServiceInPackage(ActivityManagerService.java:15737)  
             at com.android.server.am.PendingIntentRecord.sendInner(PendingIntentRecord.java:324)  
             at com.android.server.am.PendingIntentRecord.send(PendingIntentRecord.java:219)  
             at android.content.IIntentSender$Stub.onTransact(IIntentSender.java:64)  
             at android.os.Binder.execTransact(Binder.java:463)  
             Suppressed: java.lang.ClassNotFoundException: com.google.android.gms.location.LocationResult 
             at java.lang.Class.classForName(Native Method) 
             at java.lang.BootClassLoader.findClass(ClassLoader.java:781) 
             at java.lang.BootClassLoader.loadClass(ClassLoader.java:841) 
             at java.lang.ClassLoader.loadClass(ClassLoader.java:504) 
               ... 18 more 
            Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available 

Мой Gradle: build.gradle. Мой манифест: manifest. Я работаю над приложением, которое работает с Location и имеет эту ошибку. Я настраиваю multidex, но это не помогает. Что может быть неправильным?

+0

Возможный дубликат [BadParcelableException в Google Maps кода] (http://stackoverflow.com/questions/13900322/badparcelableexception-in-google-maps-code) –

+0

Нет, это не моя проблема (( – Kl0nLutiy

+0

Вы можете разместить код где вы посылку и распараллеливаете объект LocationResult, который вы передаете? –

ответ

1

У меня была та же проблема. После большой отладки я понял, что это связано с тем, что я добавлял свои дополнительные дополнения к набору намерений.

Я создаю запрос местоположения и укажу ожидающее намерение уволить, когда обновление местоположения получено в фоновом режиме.

Intent myIntent = новое намерение (контекст, MyIntentServiceClass.class); myIntent.putExtra ("someString", "someValue");

PendingIntent pendingIntent = PendingIntent.getService (контекст, 0, myIntent, PendingIntent.FLAG_UPDATE_CURRENT);

LocationServices.FusedLocationApi.requestLocationUpdates (apiClient, request, pendingIntent);

Служба намерения запускается при получении местоположения. Мое собственное дополнение находится внутри намерения. Но нет места. У меня была такая же ошибка, как и в журналах.

Как только я удаляю свой дополнительный ресурс от намерения, я получаю его, и ошибка исчезла.

Я знаю из работы с google map api, что есть аналогичные проблемы, когда вы хотите использовать объект карты, а также сохранять свои собственные элементы при сохранении и восстановлении из состояния. Я не могу найти ссылку на документацию прямо сейчас, но это было связано с тем, что сам пакет был разобран (таким образом, он потерял свой подключенный загрузчик классов). Чтобы обойти это, вы должны создать свой собственный пакет и сохранить свои внутренние объекты в новом комплекте. Затем добавьте связку в состояние out.

Я собираюсь поиграть, чтобы увидеть, как я могу добавить свои собственные дополнения в пакет запроса местоположения, не затрагивая его, как здесь происходит.

Смежные вопросы