Map Fragment在Android4.4 kitkat中不起作用

时间:2013-11-14 12:06:55

标签: android android-fragments android-4.4-kitkat

我在Android kitkat中遇到了一个奇怪的问题。我无法使用地图片段(也支持地图片段)。我使用了以下代码:

<fragment
    android:id="@+id/fragment1"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_above="@+id/imageView1"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/linearLayout1" />

我的应用程序在api级别18(Jellybean)中工作,但是当使用kitkat编译时,它会出现以下错误:错误地膨胀类片段!

Logcat输出:

11-14 07:12:12.039: E/AndroidRuntime(1068):     at dalvik.system.NativeStart.main(Native Method)

11-14 07:12:12.039: E/AndroidRuntime(1068): Caused by: android.view.InflateException: Binary XML file line #96: Error inflating class fragment

11-14 07:12:12.039: E/AndroidRuntime(1068):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)

11-14 07:12:12.039: E/AndroidRuntime(1068):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)

11-14 07:12:12.039: E/AndroidRuntime(1068):     at android.view.LayoutInflater.inflate(LayoutInflater.java:492)

11-14 07:12:12.039: E/AndroidRuntime(1068):     at android.view.LayoutInflater.inflate(LayoutInflater.java:397)

11-14 07:12:12.039: E/AndroidRuntime(1068):     at android.view.LayoutInflater.inflate(LayoutInflater.java:353)

2 个答案:

答案 0 :(得分:2)

在nexus 5设备上有不兼容的支持和播放服务库,如果您在项目中使用它们(在libs中用于support-v4或项目库用于其他项目),您可以删除相关的{{来自<uses-library ... />的1}}标记,因为必要的字节码应该已经包含在您的应用中 这样做可以解决我的问题:我实际上是以编程方式使用片段并获得&#34;引起的&#34;:

  

java.lang.IllegalAccessError:预验证类中的类ref已解析为意外实现

答案 1 :(得分:0)

通过将以下行添加到清单文件作为应用程序标记的直接元素来解决此问题,这可能是在新的Google Play服务启动后强制实施的:

<meta-data android:name="com.google.android.gms.version"
   android:value="@integer/google_play_services_version" />

另外,对开发人员的说明请确保使用FragmentActivity扩展您的活动。