앱을 만들고 스플래시 화면을 단순 theme로 보여주는데
앱 실행과 동시에 앱이 죽는 것이 아닌가?
아래와 같은 에러가 발생되었다.
org.xmlpull.v1.XmlPullParserException: Binary XML file line #6: <bitmap> requires a valid 'src' attribute
우선 나의 splash를 구성하는 내용은 아래와 같다.
Manifests
<activity
android:name=".ui.splash.SplashActivity"
android:theme="@style/SplashTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
이렇게 theme로 단순히 스플래시 화면을 보여주도록 구성했다.
android:theme="@style/SplashTheme">
styles.xml
<style name="SplashTheme" parent="AppTheme">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="android:windowBackground">@drawable/splash</item>
</style>
splash.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
android:opacity="opaque">
<item android:drawable="@color/colorPrimary"/>
<item>
<bitmap
android:gravity="center"
android:src="@mipmap/ic_launcher"/>
</item>
</layer-list>
대부분은 잘 잘동하지만 특정 기종에선(넥서스 5, etc.. ) 아예 앱 실행과 동시에 죽어버리는 불상사가 발생했다.
에러 로그를 보니...
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.dave.fish/com.dave.fish.ui.splash.SplashActivity}: android.content.res.Resources$NotFoundException: Drawable com.dave.fish:drawable/splash with resource ID #0x7f0800a0
Caused by: android.content.res.Resources$NotFoundException: Drawable com.dave.fish:drawable/splash with resource ID #0x7f0800a0
Caused by: android.content.res.Resources$NotFoundException: File res/drawable/splash.xml from drawable resource ID #0x7f0800a0
Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #6: <bitmap> requires a valid 'src' attribute
위와 같은 에러들이 뿜뿜 하였는데
특정기종에선 src의 값을 제대로 찾지 못하는듯 하다.
splash.xml의 문제인것으로 판단되어 해결책을 찾아보니
<item>
<bitmap
android:gravity="center"
android:src="@mipmap/ic_launcher"/>
</item>
<item> <bitmap> </item> 의 형식으로 감싸준게 화근이었다.
이렇게 사용하면 잘인식되는 기종있고, 안되는 기종이 있는듯하다.
아래와 같이 수정하고 난 후에는 모두 잘 동작함을 확인하였다.
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
android:opacity="opaque">
<item android:drawable="@color/colorPrimary"/>
<item
android:gravity="center"
android:drawable="@mipmap/ic_launcher"/>
</layer-list>
오늘의 문제해결 코딩일기 끝!
'개발 공부 기록하기 > - Android' 카테고리의 다른 글
[Android] KakaoLink Deep하게 사용하기 (4) | 2018.07.16 |
---|---|
Glide 메모리 줄이고 사이즈는 유지시키기 (0) | 2018.06.10 |
[Android] Unknown Source가 뜰때 해결하기 (0) | 2017.12.09 |
[안드로이드] 폰에 설치된 APK파일 추출하기 (0) | 2017.10.02 |
안드로이드 DialogFragment Title(Actionbar) 이 없어지지 않을때 방법 (0) | 2017.09.24 |