Android 活动未在某些设备上启动(错误膨胀类)

Posted

技术标签:

【中文标题】Android 活动未在某些设备上启动(错误膨胀类)【英文标题】:Android activity not starting on some devices (error inflating class) 【发布时间】:2012-11-21 23:06:37 【问题描述】:

我的程序(实际上不是我的,我只是想修复这个错误)在大多数手机上都能正常运行,但它不能在 Sony Xperia P 上启动。

当我启动程序时,出现以下消息:

应用程序意外停止。

该应用在此手机上也没有启动器图标(只有默认图标)。

错误日志说:

java.lang.RuntimeException: unable to start Activity
android.view.InflateException: Binary XML file line #16: error inflating class android.view.ImageView

应用调用时出现错误信息:

setContentView(R.layout.menu_0_splash);

我注意到可绘制资源是为以下分辨率定义的:

1024x600 320x240 400x240 480x320 800x480 854x480

这款手机是 960x540,所以我最好的问题是也有默认资源。

可能是什么问题?

布局文件(现在复制/粘贴-d):

<?xml version       = "1.0" 
encoding    = "utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/m0_relativeLayout"
android:layout_
android:layout_
android:background="@drawable/gradient_green" >

<ImageView #this is the problematic line
    android:id="@+id/arrow_top"
    android:layout_
    android:layout_
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="@dimen/m0_arrow_top_margintop"
    android:src="@drawable/splash_arrow_top" />

<ImageView
    android:id="@+id/arrow_bottom"
    android:layout_
    android:layout_
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_marginBottom="@dimen/m0_arrow_bottom_marginbottom"
    android:src="@drawable/splash_arrow_bottom" />

<ImageView
    android:id="@+id/belt_top"
    android:layout_
    android:layout_
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:src="@drawable/splash_belt_top" />

<ImageView
    android:id="@+id/belt_bottom"
    android:layout_
    android:layout_
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:src="@drawable/splash_belt_bottom" />

<ImageView
    android:id="@+id/t_ad"
    android:layout_
    android:layout_
    android:layout_alignParentBottom="true"
    android:adjustViewBounds="true"
    android:src="@drawable/t_ad" />

<ImageView
    android:id="@+id/title"
    android:layout_
    android:layout_
    android:layout_above="@+id/t_ad"
    android:adjustViewBounds="true"
    android:src="@drawable/splash_title" />

</RelativeLayout>

【问题讨论】:

【参考方案1】:

假设您实际上是从日志中复制/粘贴了错误,那么您有一个错字:

java.lang.RuntimeException: 无法启动 Activity android.view.InflateException:二进制 XML 文件第 16 行:错误 膨胀类 android.view.ImageVeiw

ImageView 在您的某个 layout.xml 文件中拼写错误。

【讨论】:

鹰眼可以,但粘贴操作不行。不知怎的,我写错了,对不起-我会编辑它。但是后来它不能在任何手机上工作,但它不仅仅在指定的手机上工作。 如果是这种情况,请发布您尝试膨胀的 layout.xml。【参考方案2】:

终于我意识到出了什么问题...手机有一个特殊的分辨率 (960x540),它找不到 ImageView-s 的源图像和这个分辨率的尺寸文件 - 这就是为什么该应用程序在其他手机上运行的原因,因为他们使用“通用”分辨率。

感谢您的帮助,感谢 +1

【讨论】:

你解决了吗?我有同样的问题。

以上是关于Android 活动未在某些设备上启动(错误膨胀类)的主要内容,如果未能解决你的问题,请参考以下文章

无法启动活动 ComponentInfo 二进制 XML 文件第 13 行:膨胀类 com.google.android.material.appbar.MaterialToolbar 时出错

导致类android.support.design.widget.FloatingActionButton膨胀的错误

android - 谷歌地图未在某些设备上显示

膨胀类 android.support.v7.app.AlertController.RecycleListView 时出错

在启动某些活动之前,小部件无法在 Android 11 上的设备启动时启动服务

Android错误膨胀类android.support.constraint.ConstraintLayout