首页 > 解决方案 > 无法启动活动 ComponentInfo 错误

问题描述

在开始时,我的应用程序在开始时正常运行,但在我更新后,当我签入 logcat 时它突然开始崩溃,我收到以下错误 Logcat

Process: com.example.deliveryapp, PID: 6208
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.deliveryapp/com.example.deliveryapp.DriversMapsActivity}: android.view.InflateException: Binary XML file line #12 in com.example.deliveryapp:layout/activity_drivers_maps: Binary XML file line #12 in com.example.deliveryapp:layout/activity_drivers_maps: Error inflating class fragment
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3449)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
     Caused by: android.view.InflateException: Binary XML file line #12 in com.example.deliveryapp:layout/activity_drivers_maps: Binary XML file line #12 in com.example.deliveryapp:layout/activity_drivers_maps: Error inflating class fragment
     Caused by: android.view.InflateException: Binary XML file line #12 in com.example.deliveryapp:layout/activity_drivers_maps: Error inflating class fragment
     Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f060016 type #0x3 is not valid
        at android.content.res.Resources.getDimensionPixelSize(Resources.java:827)
        at com.google.maps.api.android.lib6.impl.at.h(:com.google.android.gms.dynamite_mapsdynamite@201817052@20.18.17 (040700-0):7)
        at com.google.maps.api.android.lib6.impl.fc.<init>(:com.google.android.gms.dynamite_mapsdynamite@201817052@20.18.17 (040700-0):6)
        at com.google.maps.api.android.lib6.impl.bi.a(:com.google.android.gms.dynamite_mapsdynamite@201817052@20.18.17 (040700-0):15)
        at com.google.maps.api.android.lib6.impl.co.a(:com.google.android.gms.dynamite_mapsdynamite@201817052@20.18.17 (040700-0):4)
        at com.google.android.gms.maps.internal.o.a(:com.google.android.gms.dynamite_mapsdynamite@201817052@20.18.17 (040700-0):21)
        at cy.onTransact(:com.google.android.gms.dynamite_mapsdynamite@201817052@20.18.17 (040700-0):4)
        at android.os.Binder.transact(Binder.java:1043)
        at com.google.android.gms.internal.maps.zza.zzH(com.google.android.gms:play-services-maps@@17.0.1:2)
        at com.google.android.gms.maps.internal.zzk.onCreateView(com.google.android.gms:play-services-maps@@17.0.1:5)
        at com.google.android.gms.maps.zzau.onCreateView(com.google.android.gms:play-services-maps@@17.0.1:7)
        at com.google.android.gms.dynamic.zae.zaa(com.google.android.gms:play-services-base@@17.5.0:4)
        at com.google.android.gms.dynamic.DeferredLifecycleHelper.zaa(com.google.android.gms:play-services-base@@17.5.0:9)
        at com.google.android.gms.dynamic.DeferredLifecycleHelper.onCreateView(com.google.android.gms:play-services-base@@17.5.0:25)
        at com.google.android.gms.maps.SupportMapFragment.onCreateView(com.google.android.gms:play-services-maps@@17.0.1:1)
        at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2963)
        at androidx.fragment.app.FragmentStateManager.ensureInflatedView(FragmentStateManager.java:386)
        at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:281)
        at androidx.fragment.app.FragmentLayoutInflaterFactory.onCreateView(FragmentLayoutInflaterFactory.java:140)
        at androidx.fragment.app.FragmentController.onCreateView(FragmentController.java:135)
        at androidx.fragment.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:319)
2021-08-07 12:53:53.497 6208-6208/com.example.deliveryapp E/AndroidRuntime:     at androidx.fragment.app.FragmentActivity.onCreateView(FragmentActivity.java:298)
        at android.view.LayoutInflater.tryCreateView(LayoutInflater.java:1067)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:995)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:959)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:1121)
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:680)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:532)
        at com.example.deliveryapp.databinding.ActivityDriversMapsBinding.inflate(ActivityDriversMapsBinding.java:65)
        at com.example.deliveryapp.databinding.ActivityDriversMapsBinding.inflate(ActivityDriversMapsBinding.java:59)
        at com.example.deliveryapp.DriversMapsActivity.onCreate(DriversMapsActivity.java:74)
        at android.app.Activity.performCreate(Activity.java:8000)
        at android.app.Activity.performCreate(Activity.java:7984)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)

从这里我了解到错误在这一行

 super.onCreate(savedInstanceState);
        binding = ActivityDriversMapsBinding.inflate(getLayoutInflater());
        setContentView(binding.getRoot());

但这曾经在一开始就可以工作,现在它无法运行

编辑:这是我的 XML 代码

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".DriversMapsActivity" >
    <fragment
        android:id="@+id/map"
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:layout="@layout/activity_customer_maps" />
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/Customerinfo"
        android:layout_gravity="bottom"
        android:orientation="horizontal"
        android:background="@color/white"
        android:visibility="gone"
        >
        <ImageView
            android:layout_width="100sp"
            android:layout_height="100sp"
            android:id="@+id/Profile"
            android:padding="20sp"/>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:paddingLeft="20sp">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/Customername"
                />
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/Orderdone"/>
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Call"
                android:id="@+id/Call"
                />
            
        </LinearLayout>

    </LinearLayout>


</FrameLayout>

此外,当我重新编译时它确实可以正常工作,但有时会再次发生这种情况

标签: javaandroid

解决方案


它可能与您SupportMapFragment在 XML 中的片段中初始化您的方式有关(引发膨胀错误的地方)。Google 显示它的方式与您初始化它的方式不同。而不是android:name他们使用class

<fragment
    class="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

推荐阅读