找不到从方法 glt.a 引用的类 'com.google.android.gms.location.internal.ParcelableGeofence'
Posted
技术标签:
【中文标题】找不到从方法 glt.a 引用的类 \'com.google.android.gms.location.internal.ParcelableGeofence\'【英文标题】:Could not find class 'com.google.android.gms.location.internal.ParcelableGeofence', referenced from method glt.a找不到从方法 glt.a 引用的类 'com.google.android.gms.location.internal.ParcelableGeofence' 【发布时间】:2014-08-24 08:23:42 【问题描述】:一切正常,然后突然 Eclipse 开始中断,要求进行透视切换并进入调试模式,并出现错误“Lcom/google/android/gms/location/internal/ParcelableGeoFence; 类的链接;”失败的。 谷歌搜索问题没有任何结果。 调试器指向 PathClassLoader(BaseDexClassLoader).findClass(String) 行:61 奇怪的是,当我删除 map.setMyLocationEnabled(true);从我的代码中它不再崩溃,但我仍然可以在 logcat 中看到它
E/dalvikvm(5639): Could not find class 'gpr', referenced from method gps.a
W/dalvikvm(5639): VFY: unable to resolve new-instance 4090 (Lgpr;) in Lgps;
这是完整的日志:
07-03 13:07:31.677: W/dalvikvm(5639): VFY: unable to resolve static method 24936: Lguj;.a
(Landroid/content/Context;)Lgri;
07-03 13:07:31.697: E/dalvikvm(5639): Could not find class 'gpr', referenced from method gps.a
07-03 13:07:31.697: W/dalvikvm(5639): VFY: unable to resolve new-instance 4090 (Lgpr;) in Lgps;
07-03 13:07:31.697: E/dalvikvm(5639): Could not find class 'gpr', referenced from method gps.a
07-03 13:07:31.697: W/dalvikvm(5639): VFY: unable to resolve new-instance 4090 (Lgpr;) in Lgps;
07-03 13:07:31.697: E/dalvikvm(5639): Could not find class 'gpr', referenced from method gps.a
07-03 13:07:31.697: W/dalvikvm(5639): VFY: unable to resolve new-instance 4090 (Lgpr;) in Lgps;
07-03 13:07:31.707: I/Google Maps Android API(5639): Google Play services package version: 5084034
07-03 13:07:31.737: W/dalvikvm(5639): VFY: unable to resolve static field 20873 (t) in Lyp;
07-03 13:07:31.737: W/dalvikvm(5639): VFY: unable to resolve static field 20873 (t) in Lyp;
07-03 13:07:32.778: W/dalvikvm(5639): Link of class 'Lcom/google/android/gms/location/internal/ParcelableGeofence;' failed
07-03 13:07:32.778: E/dalvikvm(5639): Could not find class 'com.google.android.gms.location.internal.ParcelableGeofence', referenced from method glt.a
07-03 13:07:32.778: W/dalvikvm(5639): VFY: unable to resolve check-cast 2086 (Lcom/google/android/gms/location/internal/ParcelableGeofence;) in Lglt;
07-03 13:07:34.089: I/Adreno200-EGLSUB(5639): <ConfigWindowMatch:2078>: Format RGBA_8888.
07-03 13:07:34.319: D/LOCATION(5639): Connected
07-03 13:07:34.319: I/Adreno200-EGLSUB(5639): <ConfigWindowMatch:2089>: Format RGBX_8888.
【问题讨论】:
【参考方案1】:此问题可能是因为地图未加载而应用程序试图在未加载的地图中定位您。地图未使用您的 api 密钥或包名称加载。我认为您的 api 密钥已更改。请检查您的 api 密钥和包名称。
【讨论】:
不,不是这样,无论我何时调用 map.setMyLocationEnabled(true); api密钥也没有改变。我什至通过 git 将代码还原了几天,但仍然没有运气,我猜这与 adt 有关。 你更新了eclipse吗?因为这会改变你的 sha1 代码。因此您的 api 密钥 wud 需要更改。 不,我没有,但我仍然创建了新的地图 api 密钥,不幸的是没有运气。奇怪的是应用程序在该错误之后工作 即使我有同样的问题,所以我生成了新的 API 密钥并粘贴到清单文件中,但是当我进入调试模式并启动应用程序时,同样的错误出现了。我的主页是地图,所以它没有加载地图。但是如果你运行应用程序没有调试模式,它可以正常工作。 检查你的 Eclipse 的 sha1 代码是否与你在 google 控制台上粘贴的代码相匹配【参考方案2】:为了让谷歌地图工作,我做了两件事:
-
使用 mapView 而不是 MapFragment 或 SupportMapFragment。
如果你实现的地图使用了用户的当前位置,那么你必须检查用户是否启用了他的位置服务,并在此基础上使用方法实现你的地图
例如:
public boolean isLocationServiceEnabled()
LocationManager locationManager = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE);
if(!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER) && !locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER))
//All location services are disabled
return false;
return true;
【讨论】:
【参考方案3】:对于新访问者,如果您的代码和 api 密钥都可以,请检查您的设备是否有互联网连接。因为我忘记了互联网上的开关,所以我得到了同样的错误。
【讨论】:
来吧,你认为我在调试地图应用程序没有互联网连接或无效的 api 密钥?这么多人有同样的问题? 对于在没有互联网连接的情况下调试地图应用程序的开发人员的答案,因为我们是人类,所以我们可能会在调试时忘记打开互联网连接。该答案只是检查可能连接不正常的建议【参考方案4】:对我来说,设置 Eclipse 的 Preferences -> Android -> Build -> Custom keystore 解决了这个问题。同时卸载应用程序并清理构建。
【讨论】:
试过了,创建了新的自定义密钥,然后基于自定义密钥库的 google api 密钥,从设备上卸载了项目,清理了工作区,但没有改变,无论如何感谢帮助以上是关于找不到从方法 glt.a 引用的类 'com.google.android.gms.location.internal.ParcelableGeofence'的主要内容,如果未能解决你的问题,请参考以下文章