java - 无法启动活动 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>
此外,当我重新编译时它确实可以正常工作,但有时会再次发生这种情况
解决方案
它可能与您SupportMapFragment
在 XML 中的片段中初始化您的方式有关(引发膨胀错误的地方)。Google 显示它的方式与您初始化它的方式不同。而不是android:name
他们使用class
:
<fragment
class="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
推荐阅读
- date - 如果单元格中的日期与今天的日期匹配,则发送自动电子邮件
- node.js - Google Adwords API 未经授权的 CREATE 操作
- git - 如何撤消多个 git 提交?
- r - 如何在 ggplot boxplot R 中重新排序 X 轴上的变量?
- python - 遇到两个特定值时的 TypeError
- file - 访问 ctime 不会返回文件的创建时间
- react-native - 警告:这些软件包使用了已弃用的“rnpm”配置并且节点不工作
- spring-boot - Vaadin 与 azure AD
- python - 从 Python 中的 __init__.py 中提取所有类名
- python - VScode 似乎不接受来自虚拟环境的解释器