java - Android 为什么我在为启动画面膨胀图层列表时出现错误

标签 java android

我正在尝试为我的 Android 应用程序创建启动屏幕,我对 Android 不太熟悉。尝试运行我的应用程序时出现以下错误:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.example/com.Example.example.SplashActivity}: android.view.InflateException: Binary XML file line #2 in com.example.example:layout/activity_splash: Binary XML file line #2 in com.example.example:layout/activity_splash: Error inflating class layer-list

我尝试在网上研究这个问题,但没有看到类似的情况。

activity_splash.xml:

<?xml version="1.0" encoding="utf-8"?>
    <layer-list
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <item android:drawable="@color/colorBlack"/>

        <!-- Set the Background Image-->
        <item android:gravity="center" android:width="500dp" android:height="700dp">
            <bitmap
                android:gravity="fill_horizontal|fill_vertical"
                android:src="@drawable/logo"/>
        </item>


</layer-list>

我在 AndroidManifest.xml 中添加了以下几行:

<activity
        android:name=".SplashActivity"
        android:theme="@style/SplashScreenTheme">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

欢迎任何反馈。我想知道我错过了什么,或者是否有关于如何创建启动屏幕的文档,因为我找不到任何文档。

最佳答案

常见的方法是:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:drawable="@color/colorWhite">
    </item>

    <item>
        <bitmap android:src="@mipmap/miniheart_red" android:gravity="center"/>
    </item>

</layer-list>

在您的activity_splash.xml中

并将以下样式添加到 styles.xml

<style name="SplashScreen" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:windowBackground">@drawable/activity_splash</item>
</style>

在 list 中:

<activity android:name=".activities.Splash" android:theme="@style/SplashScreen">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
 </activity>

在本例中,Splash Activity 没有 xml 布局:

package com.something.iloveher.activities

import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle

class Splash : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        val intent = Intent(this, MainActivity::class.java)
        startActivity(intent)

        finish()
    }
}

关于java - Android 为什么我在为启动画面膨胀图层列表时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59449297/

相关文章:

java - 如何将整数数组传递给 MyBatis 中的 IN 子句

android - 如何在 android 应用程序中使用现有的 Sip Stack 库?

java - Android Gradle 编译 commons-io 在库树中创建副本

android - 将 android gradle 插件更新到 4.1.0 后,afterEvaluate 不起作用

android - Facebook 帐户工具包使用电话重新发送代码

java - 应用 Intellij 代码改进建议

java - System.currentTimeMillis能让移动速度相差很大吗?

java - 如何创建格式化文本以在 Java Swing 组件(JTextPane、JEditorPane...)中显示

Java Codelab While 语句

android - Intent 不传递我的数据