5

我有一个应用程序,其中主页是地图。找不到类com.google.android.gms.location.internal.ParcelableGeofence引用方法glt.a

不知道为什么我收到此错误,这个错误Could not find class 'gpr', referenced from method gps.a

我已经更新日食一起,所以我试图改变与新SHA1指纹API密钥。但那不行。

我的应用程序是当您打开应用程序时显示当前位置。它只是登陆到整个地图,但在LOG猫我得到这些错误。 这里是我的logcat

`07-08 12:54:39.897: I/Google Maps Android API(25749): Google Play services client version: 5077000 

07-08 12:54:39.907: I/dalvikvm(25749): Could not find method guj.a, referenced from method gqi.a 

07-08 12:54:39.907: W/dalvikvm(25749): VFY: unable to resolve static method 24936: Lguj;.a (Landroid/content/Context;)Lgri; 

07-08 12:54:39.907: D/dalvikvm(25749): VFY: replacing opcode 0x71 at 0x0003 

07-08 12:54:39.917: E/dalvikvm(25749): Could not find class 'gpr', referenced from method gps.a 

07-08 12:54:39.917: W/dalvikvm(25749): VFY: unable to resolve new-instance 4090 (Lgpr;) in Lgps; 

07-08 12:54:39.917: D/dalvikvm(25749): VFY: replacing opcode 0x22 at 0x0000 

07-08 12:54:39.927: E/dalvikvm(25749): Could not find class 'gpr', referenced from method gps.a 

07-08 12:54:39.927: W/dalvikvm(25749): VFY: unable to resolve new-instance 4090 (Lgpr;) in Lgps; 

07-08 12:54:39.927: D/dalvikvm(25749): VFY: replacing opcode 0x22 at 0x0000 

07-08 12:54:39.927: E/dalvikvm(25749): Could not find class 'gpr', referenced from method gps.a 

07-08 12:54:39.927: W/dalvikvm(25749): VFY: unable to resolve new-instance 4090 (Lgpr;) in Lgps; 

07-08 12:54:39.927: D/dalvikvm(25749): VFY: replacing opcode 0x22 at 0x0000 

07-08 12:54:39.937: D/dalvikvm(25749): DexOpt: unable to opt direct call 0x5ea3 at 0x0a in Lgps;.a 

07-08 12:54:39.937: D/dalvikvm(25749): DexOpt: unable to opt direct call 0x5ea3 at 0x0c in Lgps;.a 

07-08 12:54:39.937: D/dalvikvm(25749): DexOpt: unable to opt direct call 0x5ea3 at 0x0a in Lgps;.a 

07-08 12:54:39.957: I/Google Maps Android API(25749): Google Play services package version: 5084034 

07-08 12:54:39.977: W/dalvikvm(25749): VFY: unable to resolve static field 20873 (t) in Lyp; 

07-08 12:54:39.977: D/dalvikvm(25749): VFY: replacing opcode 0x62 at 0x000e 
07-08 12:54:39.977: W/dalvikvm(25749): VFY: unable to resolve static field 20873 (t) in Lyp; 

07-08 12:54:39.977: D/dalvikvm(25749): VFY: replacing opcode 0x62 at 0x000d 

07-08 12:54:40.888: I/dalvikvm(25749): Failed resolving Lcom/google/android/gms/location/internal/ParcelableGeofence; interface 4023 'Lgln;' 

07-08 12:54:40.888: W/dalvikvm(25749): Link of class 'Lcom/google/android/gms/location/internal/ParcelableGeofence;' failed 

07-08 12:54:40.898: E/dalvikvm(25749): Could not find class 'com.google.android.gms.location.internal.ParcelableGeofence', referenced from method glt.a 

07-08 12:54:40.898: W/dalvikvm(25749): VFY: unable to resolve check-cast 2086 (Lcom/google/android/gms/location/internal/ParcelableGeofence;) in Lglt; 

07-08 12:54:40.898: D/dalvikvm(25749): VFY: replacing opcode 0x1f at 0x0019 

07-08 12:54:41.589: W/ActivityThread(25749): ClassLoader.loadClass: The class loader returned by Thread.getContextClassLoader() may fail for processes that host multiple applications. You should explicitly specify a context class loader. For example: Thread.setContextClassLoader(getClass().getClassLoader());` 

我试图以Google它,它似乎没有妥善的解决办法又那么这将是有益的,如果有人可以帮助我。

+0

这与Eclipse无关,我使用AS和我遇到了同样的问题。这似乎与Google Play Services上次更新有关。 – Imanol

+0

他们已经弃用了一些API在这里看看:http://developer.android.com/reference/com/google/android/gms/location/package-summary.html – Imanol

+1

可能重复[无法找到类com。 google.android.gms.location.internal.ParcelableGeofence',引用方法glt.a](http://stackoverflow.com/questions/24549846/could-not-find-class-com-google-android-gms-location -internal-parcelablegeofenc) –

回答

4

我告诉你我是如何解决你有同样的问题。

首先,我清理了所有的sdk,然后我再次下载了Google Play Services lib。然后,我删除了我的电脑的.android文件夹,并重新生成了我的debug.keystore。

之后,我只是让我的新SHA1获得我的Google Maps V2 Api密钥。

更新我的apikey后,让我们看看如何更改我的代码。

现在我在你的xml布局中使用MapFragment的MapFragment片段。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".MapsActivity" > 

    <fragment 
     android:id="@+id/map" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     class="com.google.android.gms.maps.MapFragment" /> 

</RelativeLayout> 

并使用FragmentManager找到它:

public class MapsActivity extends Activity 
{ 
    private GoogleMap map; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_map); 

     // Gets the MapView from the XML layout and creates it 
     map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap(); 
     map.getUiSettings().setMyLocationButtonEnabled(false); 
     //map.setMyLocationEnabled(true); 
     map.setOnMapClickListener(this); 
     map.setOnMapLongClickListener(this); 
     try 
     { 
      MapsInitializer.initialize(MapsActivity.this); 
     } 
     catch (Exception e) 
     { 
      e.printStackTrace(); 
     } 
    } 

我希望这是有帮助和抱歉,如果我的英语是如此糟糕, 问候

0

你可以发布您的清单? Sans API密钥,当然。

你的日志看起来几乎相同,煤矿的问题,我最近有,这是通过固定加入以下的清单:

<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> 

我工作刚访问地图应用罚款,然后停止了蓝色。我看不到任何实际上指向缺少许可的内容;当我将清单与使用map api v2的另一个应用程序进行比较时,我只能理解它。

我仍然困惑为什么它以前没有它的工作(谷歌说你需要许可地图工作)。也许我曾经把它放在那里,并意外删除了这条线,但是无论采用哪种方式,都可以修复它。

来源: https://developers.google.com/maps/documentation/business/mobile/android/config

1

我曾在七月升级到API等级23(与客户谷歌,播放service_lib 5.0.77)后,同样的问题。

在测试设备上将Google Play服务更新到最新版本(6.1.09)后,问题得到解决。

因此,由于设备/仿真器上的Google Play服务版本与项目中的客户端库API(google-play-service_lib)之间的不兼容,似乎它已成为(设备特定问题)。

根据谷歌的文档,当客户端比服务更新时,客户端库API应该解决过时的服务apk问题; (它在这种情况下确实不会影响已发布的apk版本)https://developer.android.com/google/play-services/index.html

我之前尝试通过使用新的API密钥来解决此问题,并且如本文和其他类似问题中所建议的那样,新安装的Eclipse/ADT/SDK/google-play-service_lib无效。

相关问题