安卓.view.InflateException : Binary XML file line #8

标签 android xml android-activity crash

据我所知,该程序已被置于后台 Application Stop 已被调用。应用程序被带回前台,这是错误发生的时候。该应用程序无论出于何种原因都无法加载 xml 文件,代码和 xml 每次都能在我的手机 HTC Desire One 上运行。有什么明显的东西可以解决这个问题,或者有什么关于如何追踪这个问题的建议吗?

这是我从 TestFlight 返回的调用堆栈。

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.hdms.manager/com.hdms.manager.Drawable.SplashScreen}: android.view.InflateException: Binary XML file line #8: Error inflating class <unknown>
android.app.ActivityThread.performLaunchActivity in ActivityThread.java on Line 2247
android.app.ActivityThread.handleLaunchActivity in ActivityThread.java on Line 2297
android.app.ActivityThread.access$700 in ActivityThread.java on Line 152
android.app.ActivityThread$H.handleMessage in ActivityThread.java on Line 1282
android.os.Handler.dispatchMessage in Handler.java on Line 99
android.os.Looper.loop in Looper.java on Line 137
android.app.ActivityThread.main in ActivityThread.java on Line 5328
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke in Method.java on Line 511
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run in ZygoteInit.java on Line 1102
com.android.internal.os.ZygoteInit.main in ZygoteInit.java on Line 869
dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #8: Error inflating class <unknown>
android.view.LayoutInflater.createView in LayoutInflater.java on Line 619
com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView in PhoneLayoutInflater.java on Line 56
android.view.LayoutInflater.onCreateView in LayoutInflater.java on Line 666
android.view.LayoutInflater.createViewFromTag in LayoutInflater.java on Line 691
android.view.LayoutInflater.rInflate in LayoutInflater.java on Line 752
android.view.LayoutInflater.inflate in LayoutInflater.java on Line 495
android.view.LayoutInflater.inflate in LayoutInflater.java on Line 397
android.view.LayoutInflater.inflate in LayoutInflater.java on Line 353
com.android.internal.policy.impl.PhoneWindow.setContentView in PhoneWindow.java on Line 327
android.app.Activity.setContentView in Activity.java on Line 1928
com.hdms.manager.Drawable.SplashScreen.onCreate in SplashScreen.java on Line 25
android.app.Activity.performCreate in Activity.java on Line 5250
android.app.Instrumentation.callActivityOnCreate in Instrumentation.java on Line 1097
android.app.ActivityThread.performLaunchActivity in ActivityThread.java on Line 2211
... 11 more
Caused by: java.lang.reflect.InvocationTargetException
java.lang.reflect.Constructor.constructNative(Native Method)
java.lang.reflect.Constructor.newInstance in Constructor.java on Line 417
android.view.LayoutInflater.createView in LayoutInflater.java on Line 593
... 24 more
Caused by: java.lang.OutOfMemoryError
android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
android.graphics.BitmapFactory.decodeStream in BitmapFactory.java on Line 596
android.graphics.BitmapFactory.decodeResourceStream in BitmapFactory.java on Line 444
android.graphics.drawable.Drawable.createFromResourceStream in Drawable.java on Line 817
android.content.res.Resources.loadDrawable in Resources.java on Line 2854
android.content.res.TypedArray.getDrawable in TypedArray.java on Line 602
android.widget.ImageView.<init> in ImageView.java on Line 126
android.widget.ImageView.<init> in ImageView.java on Line 116
... 27 more
android.view.InflateException: Binary XML file line #8: Error inflating class <unknown>
android.view.LayoutInflater.createView in LayoutInflater.java on Line 619
com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView in PhoneLayoutInflater.java on Line 56
android.view.LayoutInflater.onCreateView in LayoutInflater.java on Line 666
android.view.LayoutInflater.createViewFromTag in LayoutInflater.java on Line 691
android.view.LayoutInflater.rInflate in LayoutInflater.java on Line 752
android.view.LayoutInflater.inflate in LayoutInflater.java on Line 495
android.view.LayoutInflater.inflate in LayoutInflater.java on Line 397
android.view.LayoutInflater.inflate in LayoutInflater.java on Line 353
com.android.internal.policy.impl.PhoneWindow.setContentView in PhoneWindow.java on Line 327
android.app.Activity.setContentView in Activity.java on Line 1928
com.hdms.manager.Drawable.SplashScreen.onCreate in SplashScreen.java on Line 25
android.app.Activity.performCreate in Activity.java on Line 5250
android.app.Instrumentation.callActivityOnCreate in Instrumentation.java on Line 1097
android.app.ActivityThread.performLaunchActivity in ActivityThread.java on Line 2211
android.app.ActivityThread.handleLaunchActivity in ActivityThread.java on Line 2297
android.app.ActivityThread.access$700 in ActivityThread.java on Line 152
android.app.ActivityThread$H.handleMessage in ActivityThread.java on Line 1282
android.os.Handler.dispatchMessage in Handler.java on Line 99
android.os.Looper.loop in Looper.java on Line 137
android.app.ActivityThread.main in ActivityThread.java on Line 5328
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke in Method.java on Line 511
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run in ZygoteInit.java on Line 1102
com.android.internal.os.ZygoteInit.main in ZygoteInit.java on Line 869
dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.reflect.InvocationTargetException
java.lang.reflect.Constructor.constructNative(Native Method)
java.lang.reflect.Constructor.newInstance in Constructor.java on Line 417
android.view.LayoutInflater.createView in LayoutInflater.java on Line 593
... 24 more
Caused by: java.lang.OutOfMemoryError
android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
android.graphics.BitmapFactory.decodeStream in BitmapFactory.java on Line 596
android.graphics.BitmapFactory.decodeResourceStream in BitmapFactory.java on Line 444
android.graphics.drawable.Drawable.createFromResourceStream in Drawable.java on Line 817
android.content.res.Resources.loadDrawable in Resources.java on Line 2854
android.content.res.TypedArray.getDrawable in TypedArray.java on Line 602
android.widget.ImageView.<init> in ImageView.java on Line 126
android.widget.ImageView.<init> in ImageView.java on Line 116
... 27 more
java.lang.reflect.InvocationTargetException
java.lang.reflect.Constructor.constructNative(Native Method)
java.lang.reflect.Constructor.newInstance in Constructor.java on Line 417
android.view.LayoutInflater.createView in LayoutInflater.java on Line 593
com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView in PhoneLayoutInflater.java on Line 56
android.view.LayoutInflater.onCreateView in LayoutInflater.java on Line 666
android.view.LayoutInflater.createViewFromTag in LayoutInflater.java on Line 691
android.view.LayoutInflater.rInflate in LayoutInflater.java on Line 752
android.view.LayoutInflater.inflate in LayoutInflater.java on Line 495
android.view.LayoutInflater.inflate in LayoutInflater.java on Line 397
android.view.LayoutInflater.inflate in LayoutInflater.java on Line 353
com.android.internal.policy.impl.PhoneWindow.setContentView in PhoneWindow.java on Line 327
android.app.Activity.setContentView in Activity.java on Line 1928
com.hdms.manager.Drawable.SplashScreen.onCreate in SplashScreen.java on Line 25
android.app.Activity.performCreate in Activity.java on Line 5250
android.app.Instrumentation.callActivityOnCreate in Instrumentation.java on Line 1097
android.app.ActivityThread.performLaunchActivity in ActivityThread.java on Line 2211
android.app.ActivityThread.handleLaunchActivity in ActivityThread.java on Line 2297
android.app.ActivityThread.access$700 in ActivityThread.java on Line 152
android.app.ActivityThread$H.handleMessage in ActivityThread.java on Line 1282
android.os.Handler.dispatchMessage in Handler.java on Line 99
android.os.Looper.loop in Looper.java on Line 137
android.app.ActivityThread.main in ActivityThread.java on Line 5328
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke in Method.java on Line 511
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run in ZygoteInit.java on Line 1102
com.android.internal.os.ZygoteInit.main in ZygoteInit.java on Line 869
dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.OutOfMemoryError
android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
android.graphics.BitmapFactory.decodeStream in BitmapFactory.java on Line 596
android.graphics.BitmapFactory.decodeResourceStream in BitmapFactory.java on Line 444
android.graphics.drawable.Drawable.createFromResourceStream in Drawable.java on Line 817
android.content.res.Resources.loadDrawable in Resources.java on Line 2854
android.content.res.TypedArray.getDrawable in TypedArray.java on Line 602
android.widget.ImageView.<init> in ImageView.java on Line 126
android.widget.ImageView.<init> in ImageView.java on Line 116
... 27 more
java.lang.OutOfMemoryError
android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
android.graphics.BitmapFactory.decodeStream in BitmapFactory.java on Line 596
android.graphics.BitmapFactory.decodeResourceStream in BitmapFactory.java on Line 444
android.graphics.drawable.Drawable.createFromResourceStream in Drawable.java on Line 817
android.content.res.Resources.loadDrawable in Resources.java on Line 2854
android.content.res.TypedArray.getDrawable in TypedArray.java on Line 602
android.widget.ImageView.<init> in ImageView.java on Line 126
android.widget.ImageView.<init> in ImageView.java on Line 116
java.lang.reflect.Constructor.constructNative(Native Method)
java.lang.reflect.Constructor.newInstance in Constructor.java on Line 417
android.view.LayoutInflater.createView in LayoutInflater.java on Line 593
com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView in PhoneLayoutInflater.java on Line 56
android.view.LayoutInflater.onCreateView in LayoutInflater.java on Line 666
android.view.LayoutInflater.createViewFromTag in LayoutInflater.java on Line 691
android.view.LayoutInflater.rInflate in LayoutInflater.java on Line 752
android.view.LayoutInflater.inflate in LayoutInflater.java on Line 495
android.view.LayoutInflater.inflate in LayoutInflater.java on Line 397
android.view.LayoutInflater.inflate in LayoutInflater.java on Line 353
com.android.internal.policy.impl.PhoneWindow.setContentView in PhoneWindow.java on Line 327
android.app.Activity.setContentView in Activity.java on Line 1928
com.hdms.manager.Drawable.SplashScreen.onCreate in SplashScreen.java on Line 25
android.app.Activity.performCreate in Activity.java on Line 5250
android.app.Instrumentation.callActivityOnCreate in Instrumentation.java on Line 1097
android.app.ActivityThread.performLaunchActivity in ActivityThread.java on Line 2211
android.app.ActivityThread.handleLaunchActivity in ActivityThread.java on Line 2297
android.app.ActivityThread.access$700 in ActivityThread.java on Line 152
android.app.ActivityThread$H.handleMessage in ActivityThread.java on Line 1282
android.os.Handler.dispatchMessage in Handler.java on Line 99
android.os.Looper.loop in Looper.java on Line 137
android.app.ActivityThread.main in ActivityThread.java on Line 5328
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke in Method.java on Line 511
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run in ZygoteInit.java on Line 1102
com.android.internal.os.ZygoteInit.main in ZygoteInit.java on Line 869
dalvik.system.NativeStart.main(Native Method)

这是xml文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="#000000" >


    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/imageView"
        android:src="@drawable/splash_image"
        android:layout_centerInParent="true"
        android:scaleType="centerCrop"/>

    <!--<VideoView android:layout_height="wrap_content"-->
        <!--android:layout_width="wrap_content"-->
        <!--android:id="@+id/videoView"/>-->

</RelativeLayout>

代码

package com.hdms.manager.Drawable;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import com.hdms.manager.MainActivity;
import com.hdms.manager.R;

/**
 * Created by bradj on 8/10/13.
 *
 */

public class SplashScreen extends Activity
{
    // Splash screen timer
    private static final int mDisplaySplashScreen = 500;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash);

        new Handler().postDelayed(new Runnable()
        {
            @Override
            public void run()
            {
                // This method will be executed once the timer is over
                // Start your app main activity
                Intent i = new Intent(SplashScreen.this, MainActivity.class);
                startActivity(i);

                // close this activity
                finish();
            }
        }, mDisplaySplashScreen);
    }
}

最佳答案

那些堆栈报告是 OutOfMemory 异常,即设备内存不足。

检查您放置背景图像的 drawable 目录,对于 768x1280 像素,它应该是 drawable-xhdpi。 Android 会针对其他屏幕尺寸自动缩放图像,这意味着如果您将图像放在 drawable-mdpi 中,对于三星 4 等 xxhdpi 设备,它将缩放为 2304x3840。

请注意,建议为每个支持的屏幕尺寸提供一个位图资源。在此处查看有关支持多种屏幕尺寸的更多信息 http://developer.android.com/guide/practices/screens_support.html

除此之外,除了使用 setContentView 上的 try 子句捕获异常并优雅地处理它之外,您对 OutOfMemoryException 几乎无能为力。有一些非常糟糕的 Android 设备经常出现内存问题。您应该将您的应用程序连接到一个更好的错误报告系统,您可以从中获取更多设备数据,以确认情况是否如此。

关于安卓.view.InflateException : Binary XML file line #8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20874081/

相关文章:

xml - 在 R 中抓取受密码保护的网站

java - 将数据发送到父 Activity

java - 解决方案: java. lang.NoSuchMethodError:没有静态方法isCtrlPressed(Landroid/view/KeyEvent;) OR (Landroid/support/v4/view/KeyEventCompat)

java - 关闭对话框 fragment 后调用父 Activity 中的方法

javascript - 动态添加不同大小的数据集到Google Visualization Chart

xml - 如何从 XML 中获取所有属性名称,而不是特定节点的值?

Android Activity 在旋转时刷新

android - ActivityUnitTestCase 和 startActivity 与 ActionBarActivity

android - 如何在 tflite 中使用posenet模型的输出

android - 无法在 Android 2.3.3 中获取电话号码