在服务中生成视图时无法找到片段

时间:2016-07-29 04:39:59

标签: android google-maps

我正在尝试实现一个位于所有应用之上的浮动地图视图。

浮动视图的布局。

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

<ImageView
    android:id="@+id/bubble"
    android:layout_width="80dp"
    android:layout_height="80dp"
    android:src="@mipmap/ic_launcher"/>

 <RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/main_overlay_wrapper"
    android:background="@color/colorPrimary"
    android:layout_below="@+id/bubble"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true">

    <fragment
        android:id="@+id/location_map"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:name="com.google.android.gms.maps.SupportMapFragment" />

   </RelativeLayout>

</RelativeLayout>

我们的想法是更改动画子RelativeLayout的可见性动画,并在那里有一个地图视图。

此布局从服务中膨胀并添加到窗口管理器。

充气时出现以下错误。

07-29 00:36:10.121 11682-11682/com.derp.derp E/AndroidRuntime: FATAL EXCEPTION: main
                                                                  Process: com.derp.derp, PID: 11682
                                                                  java.lang.RuntimeException: Unable to create service com.derp.derp.BubbleService: android.view.InflateException: Binary XML file line #24: Binary XML file line #24: Error inflating class fragment
                                                                      at android.app.ActivityThread.handleCreateService(ActivityThread.java:3157)
                                                                      at android.app.ActivityThread.-wrap5(ActivityThread.java)
                                                                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1535)
                                                                      at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                      at android.os.Looper.loop(Looper.java:154)
                                                                      at android.app.ActivityThread.main(ActivityThread.java:6044)
                                                                      at java.lang.reflect.Method.invoke(Native Method)
                                                                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
                                                                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
                                                                   Caused by: android.view.InflateException: Binary XML file line #24: Binary XML file line #24: Error inflating class fragment
                                                                   Caused by: android.view.InflateException: Binary XML file line #24: Error inflating class fragment
                                                                   Caused by: java.lang.ClassNotFoundException: Didn't find class "android.view.fragment" on path: DexPathList[[zip file "/data/app/com.derp.derp-1/base.apk"],nativeLibraryDirectories=[/data/app/com.derp.derp-1/lib/x86, /system/lib, /vendor/lib]]
                                                                      at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
                                                                      at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
                                                                      at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
                                                                      at android.view.LayoutInflater.createView(LayoutInflater.java:609)
                                                                      at android.view.LayoutInflater.onCreateView(LayoutInflater.java:700)
                                                                      at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:68)
                                                                      at android.view.LayoutInflater.onCreateView(LayoutInflater.java:717)
                                                                      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:785)
                                                                      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
                                                                      at android.view.LayoutInflater.rInflate(LayoutInflater.java:858)
                                                                      at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
                                                                      at android.view.LayoutInflater.rInflate(LayoutInflater.java:861)
                                                                      at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
                                                                      at android.view.LayoutInflater.inflate(LayoutInflater.java:518)
                                                                      at android.view.LayoutInflater.inflate(LayoutInflater.java:426)
                                                                      at android.view.LayoutInflater.inflate(LayoutInflater.java:377)
                                                                      at com.derp.derp.BubbleService.onCreate(BubbleService.java:65)
                                                                      at android.app.ActivityThread.handleCreateService(ActivityThread.java:3147)
                                                                      at android.app.ActivityThread.-wrap5(ActivityThread.java)
                                                                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1535)
                                                                      at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                      at android.os.Looper.loop(Looper.java:154)
                                                                      at android.app.ActivityThread.main(ActivityThread.java:6044)
                                                                      at java.lang.reflect.Method.invoke(Native Method)
                                                                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
                                                                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

注意:将片段复制并粘贴到activity_main.xml

时,不会发生此错误

1 个答案:

答案 0 :(得分:1)

尝试更改SupportMapFragment ==&gt; MapFragment

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