膨胀MapFragment

时间:2017-04-21 00:59:22

标签: android google-maps-android-api-2

我正在使用Google Maps for Work。在膨胀MapFragment时,抛出以下异常:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.emerson.oversight/oversight.controller.ui.activities.MapActivity}: android.view.InflateException: Binary XML file line #72: Binary XML file line #72: Error inflating class fragment
                                                                           at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3254)
                                                                           at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3350)
                                                                           at android.app.ActivityThread.access$1100(ActivityThread.java:222)
                                                                           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1795)
                                                                           at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                           at android.os.Looper.loop(Looper.java:158)
                                                                           at android.app.ActivityThread.main(ActivityThread.java:7229)
                                                                           at java.lang.reflect.Method.invoke(Native Method)
                                                                           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
                                                                           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
                                                                        Caused by: android.view.InflateException: Binary XML file line #72: Binary XML file line #72: Error inflating class fragment
                                                                           at android.view.LayoutInflater.inflate(LayoutInflater.java:551)
                                                                           at android.view.LayoutInflater.inflate(LayoutInflater.java:429)
                                                                           at android.view.LayoutInflater.inflate(LayoutInflater.java:380)
                                                                           at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:292)
                                                                           at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
                                                                           at oversight.controller.ui.activities.MapActivity.onCreate(MapActivity.java:27)
                                                                           at android.app.Activity.performCreate(Activity.java:6876)
                                                                           at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1135)
                                                                           at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3207)
                                                                           at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3350) 
                                                                           at android.app.ActivityThread.access$1100(ActivityThread.java:222) 
                                                                           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1795) 
                                                                           at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                           at android.os.Looper.loop(Looper.java:158) 
                                                                           at android.app.ActivityThread.main(ActivityThread.java:7229) 
                                                                           at java.lang.reflect.Method.invoke(Native Method) 
                                                                           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
                                                                           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 
                                                                        Caused by: android.view.InflateException: Binary XML file line #72: Error inflating class fragment
                                                                           at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:794)
                                                                           at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:716)
                                                                           at android.view.LayoutInflater.rInflate(LayoutInflater.java:847)
                                                                           at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:810)
                                                                           at android.view.LayoutInflater.inflate(LayoutInflater.java:527)
                                                                           at android.view.LayoutInflater.inflate(LayoutInflater.java:429) 
                                                                           at android.view.LayoutInflater.inflate(LayoutInflater.java:380) 
                                                                           at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:292) 
                                                                           at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
                                                                           at oversight.controller.ui.activities.MapActivity.onCreate(MapActivity.java:27) 
                                                                           at android.app.Activity.performCreate(Activity.java:6876) 
                                                                           at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1135) 
                                                                           at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3207) 
                                                                           at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3350) 
                                                                           at android.app.ActivityThread.access$1100(ActivityThread.java:222) 
                                                                           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1795) 
                                                                           at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                           at android.os.Looper.loop(Looper.java:158) 
                                                                           at android.app.ActivityThread.main(ActivityThread.java:7229) 
                                                                           at java.lang.reflect.Method.invoke(Native Method) 
                                                                           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
                                                                           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 
                                                                        Caused by: android.content.res.Resources$NotFoundException: File res/drawable-anydpi-v21/maps_watermark_color.xml from drawable resource ID #0x7f0200d7
                                                                           at android.content.res.Resources.loadDrawableForCookie(Resources.java:4220)
                                                                           at android.content.res.Resources.loadDrawable(Resources.java:4089)
                                                                           at android.content.res.Resources.getDrawable(Resources.java:2005)
                                                                           at android.content.res.Resources.getDrawable(Resources.java:1987)
                                                                           at android.content.res.Resources.getDrawable(Resources.java:1961)
                                                                           at com.google.android.m4b.maps.bl.by.<init>(WidgetContainer.java:1092)
                                                                           at com.google.android.m4b.maps.bl.by.<init>(WidgetContainer.java:64)
                                                                           at com.google.android.m4b.maps.bl.t.a(GoogleMapImpl.java:367)
                                                                           at com.google.android.m4b.maps.bl.t.a(GoogleMapImpl.java:320)
                                                                           at com.google.android.m4b.maps.bl.am$a.a(MapFragmentDelegateImpl.java:1082)
                                                                           at com.google.android.m4b.maps.bl.am.a(MapFragmentDelegateImpl.java:139)
                                                                           at com.google.android.m4b.maps.MapFragment$a.a(MapFragment.java:120)
                                                                           at com.google.android.m4b.maps.s.a$3.b(DeferredLifecycleHelper.java:231)
                                                                           at com.google.android.m4b.maps.s.a.a(DeferredLifecycleHelper.java:140)
                                                                           at com.google.android.m4b.maps.s.a.a(DeferredLifecycleHelper.java:222)
                                                                           at com.google.android.m4b.maps.MapFragment.onCreateView(MapFragment.java:477)
                                                                           at android.app.Fragment.performCreateView(Fragment.java:2281)
                                                                           at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:954)
                                                                           at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1141)
                                                                           at android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1245)
                                                                           at android.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2218)
                                                                           at android.app.FragmentController.onCreateView(FragmentController.java:98)
                                                                           at android.app.Activity.onCreateView(Activity.java:6070)
                                                                        at android.

活动类:

公共类MapActivity扩展AppCompatActivity实现了OnMapReadyCallback {

public static final String EXTRA_MAP_DATA = "EXTRA_MAP_DATA";
private GoogleMap mMap;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.map);
    MapFragment mapFragment = (MapFragment) getFragmentManager()
            .findFragmentById(R.id.mapFragment);
    mapFragment.getMapAsync(this);
}

@Override
public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;
    final TrackerStatusList status = getIntent().getParcelableExtra(EXTRA_MAP_DATA);
    googleMap.addMarker(new MarkerOptions().position(new LatLng(status.getLatitude(), status.getLongitude())));
    googleMap.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() {
        @Override
        public View getInfoWindow(Marker marker) {
            View view = LayoutInflater.from(MapActivity.this).inflate(R.layout.info_win, null);

            ((TextView) view.findViewById(R.id.tvTripNameMap)).setText(status.getTripName());
            ((TextView) view.findViewById(R.id.tvSerial)).setText(status.getTrackerId());
            ((TextView) view.findViewById(R.id.tvTemperature)).setText(status.getTemperatureString());
            ((TextView) view.findViewById(R.id.tvLocation)).setText(status.getAddressGeo());

            return view;
        }

        @Override
        public View getInfoContents(Marker marker) {
            return null;
        }
    });
}

布局:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_select_a__trip"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/bg"
    android:orientation="vertical"
    tools:context="oversight.controller.ui.activities.SelectA_TripActivity">
<!--Exception is caused here. (This is line number 72):--><fragment
    android:id="@+id/mapFragment"
    class="com.google.android.m4b.maps.MapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

</LinearLayout>

1 个答案:

答案 0 :(得分:0)

这是问题的根源:.....

  

资源$ NotFoundException:来自可绘制资源ID#0x7f0200d7的文件res / drawable-anydpi-v21 / maps_watermark_color.xml。最好在https://developers.google.com/maps/premium/android-get-started

查看指南