본문 바로가기
개발

[안드로이드/코틀린] 테마 적용 오류

by kks950115 2024. 2. 20.
728x90

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.brandon.playvideo_app/cohttp://m.brandon.playvideo_app.ui.detail.ChannelDetailActivity}: android.view.InflateException: Binary XML file line #16 in com.brandon.playvideo_app:layout/channeldetail_activity: Binary XML file line #16 in com.brandon.playvideo_app:layout/channeldetail_activity: Error inflating class <unknown>

이런 오류가 뜬다... 

해당 channeldetailactivity가 뜰 때마다 위 에러를 띄우면서 앱이 꺼졌다.

 

원인: 테마가 적용안된거였다.

 

해결 : 

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:name=".PlayVideoApp"
        android:allowBackup="true"
        android:dataExtractionRules="@xml/data_extraction_rules"
        android:fullBackupContent="@xml/backup_rules"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.AppCompat.Starting"
        android:enableOnBackInvokedCallback="true"
        tools:targetApi="31">
        <activity
            android:name=".ui.library.EditProfileActivity"
            android:theme="@style/Theme.Design.NoActionBar"
            android:exported="false" />
        <activity
            android:name=".ui.main.MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".ui.detail.ChannelDetailActivity"
            android:theme="@style/Theme.PlayVideo_App" // 이 부분이 없었는데 추가하니 정상적으로 작동했다.
            android:exported="false"/>
    </application>

</manifest>

 

이거 말고도

해당 액티비티의 oncreate 에서

override fun onCreate(savedInstanceState: Bundle?) {
        setTheme(R.style.Theme_PlayVideo_App) // 이렇게 추가해도 된다.
        super.onCreate(savedInstanceState)
        
}

setTheme로 추가해도 된다.

728x90
반응형

댓글