2016-07-29 33 views
0

我試圖實現一個位於所有應用程序之上的浮動地圖視圖。在服務中生成視圖時無法找到片段

浮動視圖的佈局。

<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

試圖改變SupportMapFragment ==> MapFragment

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