我有这样的错误:

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,但这没有帮助。有什么事吗

最佳答案

我遇到过同样的问题。经过大量调试后,我意识到这是因为我将自己的额外功能添加到了意图包中。

我正在创建一个位置请求,并指定在后台接收到位置更新时要触发的待处理意图。

意图myIntent =新意图(context,MyIntentServiceClass.class);
myIntent.putExtra(“ someString”,“ someValue”);

PendingIntentendingIntent = PendingIntent.getService(context,0,myIntent,PendingIntent.FLAG_UPDATE_CURRENT);

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

收到位置信息后,将触发Intent服务。我自己的额外目的就是意图。但是没有位置。我在日志中有与此完全相同的错误。

一旦我从Intent中删除自己的多余内容,就会收到位置信息,并且错误消失了。

通过与Google Map API的合作,我知道在使用地图对象时也存在类似的挑战,并且在从状态保存和还原时还需要保存自己的项目。我现在找不到指向文档的链接,但这是将Bundle本身打包的结果(因此丢失了其附加的类加载器)。为了解决该问题,您必须创建自己的捆绑软件并将内部对象存储在新捆绑软件中。然后将捆绑软件添加到out状态。

我将四处逛逛,看看如何仍然可以将自己的附加功能添加到位置请求包中,而不会像在这里发生的那样影响它。

10-08 03:03