1

我在 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 编译时出现以下错误:错误膨胀类片段!

日志输出:

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)
4

2 回答 2

2

在 nexus 5 设备上存在不兼容的支持和播放服务库,如果您在项目中使用它们(在libssupport-v4 或其他项目库中),您可以从中删除相关<uses-library ... />标签,AndroidManifest.xml因为应该已经包含必要的字节码在您的应用程序中。
这样做为我解决了这个问题:我实际上是在以编程方式使用片段并得到一个“由”引起的:

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

于 2013-11-15T15:12:02.973 回答
0

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

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

另外请注意,请确保您使用 FragmentActivity 扩展您的活动。

于 2013-11-18T04:43:08.547 回答