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.support.v7.app.AlertController.RecycleListView 时出错