我正在使用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>
答案 0 :(得分:0)
这是问题的根源:.....
资源$ NotFoundException:来自可绘制资源ID#0x7f0200d7的文件res / drawable-anydpi-v21 / maps_watermark_color.xml。最好在https://developers.google.com/maps/premium/android-get-started
查看指南