안드로이드 프로젝트를 새로 시작하면서 다음과 같은 에러문구가 발생하면서 어플실행자체가 안 되는
문제가 있어서 해결 방법에 대해 포스팅합니다
Process: com.example.android.bluetoothlegatt, PID: 12999
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.android.bluetoothlegatt/com.example.android.bluetoothlegatt.LoadingActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3645)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3782)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2307)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7872)
at java.lang.reflect.Method.invoke(Native Method)
at co m.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at co m.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
at androidx.appcompat.app.AppCompatDelegateImpl.createSubDecor(AppCompatDelegateImpl.java:555)
at androidx.appcompat.app.AppCompatDelegateImpl.ensureSubDecor(AppCompatDelegateImpl.java:518)
at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:457)
at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:145)
at com.example.android.bluetoothlegatt.LoadingActivity.onCreate(LoadingActivity.java:21)
at android.app.Activity.performCreate(Activity.java:8305)
at android.app.Activity.performCreate(Activity.java:8284)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1417)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3626)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3782)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2307)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7872)
at java.lang.reflect.Method.invoke(Native Method)
at co m.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at co m.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
해당 에러 문구 중에 주의 깊게 봐야 되는 부분은 Caused by 구문으로
안드로이드 에러문구가 발생하면 Caused by만 잘 보셔도 간단하게 원인을 알 수 있습니다
해당 내용은 Application이 특정 테마를 사용해야 한다는 말로
Theme.AppCompat으로 시작하는 테마를 선택해 주면 문제가 해결됩니다
현재 사용하시는 안드로이드 스튜디오에서 정의된 테마를 지원하지 않기 때문인데
Manifests에서 Activity에 테마 설정을 바꿔주시면 됩니다
<application android:label="@string/app_name"
android:icon="@drawable/ic_launcher">
<activity android:name=".LoadingActivity"
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
android:exported="true"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name=".DeviceControlActivity"
android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>
<service android:name=".BluetoothLeService" android:enabled="true"/>
<activity android:name=".InitActivity" android:exported="true"
android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>
</application>
저는 기본적으로 Activity 스타일에서 android:theme="@style/Theme.AppCompat.Light.NoActionBar"를
선택하여 적용해 준 뒤에 빌드를 했더니 해당 에러는 해결이 되었습니다
'안드로이드' 카테고리의 다른 글
[Android] MPAndroidChart x축 표시 제한하기 (1) | 2023.05.19 |
---|---|
[Android] 자동 어플 재시작 만들기 (1) | 2023.03.30 |
[Android] Aborting build since new baseline file was created 에러 해결 (0) | 2023.02.13 |
[Android] Lint found fatal errors while assembling a release target. 에러 해결 (0) | 2023.02.13 |
[Android] IllegalStateException 에러 해결 (1) | 2023.01.19 |
댓글