와 ....
정말 미쳐버리겠다
보다보니 코드를 중복 작성하는 멍청이 같은 실수를 한게 몇개 있어서 30초 걸릴게 60초 걸리는 등 여러가지 문제들이 보였다
아마 살짝 정신줄 놓고 하다보니 그런듯?
그래서 차분하게 시작했다
종속성
버전업데이트
오류메시지
라이브러리확인
파일존재확인
나는 포기하지 않기위해!!!
하지만 .. 왜 자꾸 버튼을 클릭하면 오류가 되는지 도저히 모르겠다 ...
방법을 모르겠어 ...
구글링
https://jjunnak.tistory.com/24
[ Android Studio ] 버튼 클릭 이벤트, 화면 전환 시키기 ( Intent )
Intent 를 이용한 버튼클릭시 화면을 전환하는 이벤트를 생성함 버튼 생성 및 버튼 아이디 설정은 간단하므로 생략 ( 검색해보셈 ) [ 필요한것 ] 버튼이 있는 MainActivity 버튼클릭시 보여줄 화
jjunnak.tistory.com
문득 해당 검색을 진행하다가 깨달았다
'아 ... 버전이 다르다는 이유로 너무 다른것들을 추가했구나'
정말 답이 없어서 It's 클래식으로 구글링부터 다시 시작했더니
간단한 해답이 나왔다
다들 코드 간소화를 못해서 안달인데
너무 초보티를 팍팍내면서 혼자 자기 합리화해서 덕지덕지 코드를 늘려놓고 있었다 ...
그러면 간단한 해법을 찾았다
하나씩 하나씩 빼보자
어차피 이번 프로젝트는 망했다 .. 다시 처음부터 한다는 마음으로 ...
하지만 갈때 가더라도 '삭제(Delete)' 정도는 괜찮잖아?
(광기의 삭제가 시작된다, 두구둥)
로그캣
구글링은 기본적인 내용만 나오고
나와 같은 사례를 아예 찾지 못하고 있는데 ...
계속해서 챗gpt만 검색하고 있었다
그러던 중 로그캣(Logcat)에 대한 제시를 보고 ... '뭔진 모르지만 한번 해보지 뭐'
아님 말구라는 마음으로 한번 들여다 보게되었다 ...
앱 강제 종료와 직접적으로 연관된 로그를 확인하기 위해 다음과 같은 에러 로그를 찾는 것이 좋습니다:
FATAL EXCEPTION 또는 Caused by로 시작하는 로그 메시지:앱이 강제 종료될 때 보통 FATAL EXCEPTION으로 표시됩니다.
앱의 패키지 이름과 함께 발생한 예외의 종류(예: NullPointerException, IllegalArgumentException 등)가 나옵니다.
앱 패키지 이름이 포함된 에러 메시지:예를 들어 com.example.kotlinsample로 필터링하여 해당 앱의 로그를 우선적으로 살펴보는 것도 좋은 방법입니다.
에러 로그의 위치 확인:MainActivity.kt:25와 같이, 에러 메시지에서 발생 위치를 나타내는 파일과 줄 번호를 찾으면 문제 해결에 큰 도움이 됩니다.
스터디 책과 동일하게 하려고 계속 삭제를 반복하던 중에 ...
오류가 발생하면 원래대로 코드 수정을 추천하는 지피티 선생 ... 아직 나에겐 스스로 해결할 능력따윈 개나 줘버리다보니
해결을 못하고 반복되다보니 ... 새로움에 흥미가 생겼고 우리의 로그캣을 접하게 된다 ...
오류 메시지의 주요 원인은 BmiJavaActivity가 Theme.AppCompat 또는 그 하위 테마가 아닌 다른 테마를 사용하고 있기 때문입니다. 이로 인해 AppCompatActivity를 사용하는 BmiJavaActivity에서 IllegalStateException이 발생하고 있습니다.
사실 초보 개발자는 뭔지 몰라요 ... 그래서 우리 지선생이 잘 알려주네요
- 필수 설정이 누락된 경우 (예: 테마, 레이아웃 등)
- 컴포넌트가 특정 상태에 있어야 하는데 그렇지 않은 경우
- 생명 주기 메서드 호출 순서 오류 (예: 액티비티가 아직 준비되지 않았을 때 특정 메서드를 호출하는 경우)
아하 ... 그렇구나... 하고 대충 개념 이해만 하는'척'만 합니다
이제 지피티가 알려준대로 설정을 한번 해봅니다
해결 방법
- AndroidManifest.xml에서 BmiJavaActivity의 테마를 수정하기: BmiJavaActivity에 Theme.AppCompat 또는 그 하위 테마를 지정해야 합니다. AndroidManifest.xml에서 BmiJavaActivity의 android:theme 속성을 Theme.AppCompat로 설정해 주세요.
<activity
android:name="com.example.kotlinsample.BmiJavaActivity"
android:theme="@style/Theme.AppCompat.Light" <!-- AppCompat 테마 적용 -->
android:label="com.example.kotlinsample.BmiJavaActivity" />
-
styles.xml에서 테마 확인하기: 만약 Theme.AppCompat가 기본 테마로 설정되어 있지 않다면, res/values/styles.xml에서 테마를 Theme.AppCompat로 설정해야 합니다.
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here -->
</style>
-
BmiJavaActivity가 AppCompatActivity를 상속하는지 확인하기: 현재 BmiJavaActivity가 AppCompatActivity를 상속하고 있는데, 이 클래스는 반드시 Theme.AppCompat를 필요로 합니다. AppCompatActivity가 맞다면 테마를 Theme.AppCompat로 설정하는 것만으로 해결이 가능합니다.
와 ... 저 집에서 하다가 소리질렀네요
드디어 해결 했습니다
성취감 대박
이제 상단 제목 수정하면서 드디어 진도를 나갈수 있다!!!
(진도 나가는게 이렇게 행복할 일이야?)
'개발일지' 카테고리의 다른 글
'Diff' 코드 비교하고 리뷰하며 계산앱(Kotlin) 만들기 (0) | 2024.11.11 |
---|---|
AppTheme과 계산앱(Java) 실행에 옮겨! (0) | 2024.11.10 |
오블완을 통한 코드간소화의 중요성 (0) | 2024.11.08 |
벌써 ... 버그버그버그? (2) | 2024.11.07 |
Java/Kotiln 개별 액티비티(Activity) (3) | 2024.11.06 |