有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java AAPT:错误:未找到样式属性“安卓:attr/WindowsPlashCreenBackground”

我也犯了同样的错误,使用Android Studio Canary

它在Gradle 4.2.1和Gradle最新版本7.1.0-alpha09中返回相同的错误。(即错误日志如下)

at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: com.安卓.builder.internal.aapt.v2.Aapt2Exception: Android resource linking failed
ERROR:/home/iuri/QonteoApps/biometricmax/node_modules/react-native-splash-screen/安卓/build/intermediates/packaged_res/release/values/values.xml:13:5-18:13: AAPT: error: style attribute '安卓:attr/windowSplashScreenBackground' not found.
    
ERROR:/home/iuri/QonteoApps/biometricmax/node_modules/react-native-splash-screen/安卓/build/intermediates/packaged_res/release/values/values.xml:13:5-18:13: AAPT: error: style attribute '安卓:attr/windowSplashScreenAnimatedIcon' not found.
    
ERROR:/home/iuri/.gradle/caches/transforms-3/de2ed04f8522efd4ca22835ece62dd33/transformed/core-splashscreen-1.0.0-alpha01/res/values-v31/values-v31.xml:3:5-9:13: AAPT: error: style attribute '安卓:attr/windowSplashScreenAnimatedIcon' not found.
    
ERROR:/home/iuri/.gradle/caches/transforms-3/de2ed04f8522efd4ca22835ece62dd33/transformed/core-splashscreen-1.0.0-alpha01/res/values-v31/values-v31.xml:3:5-9:13: AAPT: error: style attribute '安卓:attr/windowSplashScreenBackground' not found.
    
ERROR:/home/iuri/.gradle/caches/transforms-3/de2ed04f8522efd4ca22835ece62dd33/transformed/core-splashscreen-1.0.0-alpha01/res/values-v31/values-v31.xml:3:5-9:13: AAPT: error: style attribute '安卓:attr/windowSplashScreenAnimationDuration' not found.

at com.安卓.builder.internal.aapt.v2.Aapt2Exception$Companion.create(Aapt2Exception.kt:45)
at com.安卓.builder.internal.aapt.v2.Aapt2Exception$Companion.create$default(Aapt2Exception.kt:39)

此外,我还更新了:

  1. SDK平台到Android 12(S)
  2. Plus SDK构建工具更新为Android SDK构建工具31

我必须在哪里/如何实现这些样式属性? 我已将以下项目添加到样式中。xml

    <item name="安卓:windowBackground">@drawable/splash</item>
    <item name="安卓:windowSplashScreenBackground">@drawable/splash</item>
    <item name="安卓:windowSplashScreenAnimatedIcon">@null</item>

共 (1) 个答案

  1. # 1 楼答案

    很可能是我的question的复制品

    我猜你没有改变主题

    在最新的更新中,安卓12附带了SplashScreen API,以确保启动屏幕从安卓12开始正确显示

    要访问它,你必须升级你的gradle文件,并将你的主题父项更改为^{。在你的gradle中添加:

    android {
        //before syncing please make sure Android API 12 is installed in SDK manager
        compileSdkVersion 31 
        ...
    }
    dependencies {
        ...
        implementation 'androidx.core:core-splashscreen:1.0.0-alpha01'
        ...
    }
    

    为启动屏幕创建一个单独的style.xml

    <resources>
        <style name="Theme.MySplashScreen" parent="Theme.SplashScreen"> 
            <item name="windowSplashScreenBackground">@color/black</item> <!  If it's a @drawable make sure it's in .xml format >
            <item name="windowSplashScreenAnimationDuration">1000</item>
            <item name="windowSplashScreenAnimatedIcon">@drawable/books_logo</item>
            <item name="postSplashScreenTheme">@style/Theme.Books</item> <!  This will switch back to your given theme once the splash screen is gone >
        </style>
    </resources>
    

    在清单中设置主题<application>

    <manifest>
       <application 
       ...
       android:theme="@style/Theme.MySplashScreen">
       ...
    

    最后MainActivity中,或者在setContentView()之前的onCreate()中设置启动屏幕的启动活动

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