우물안에서 보는 하늘도 맑다

오틸라의 안드로이드 앱 만들기 강좌 : 힐링 #7 본문

경단녀에서 "나"로 돌아가기/안드로이드

오틸라의 안드로이드 앱 만들기 강좌 : 힐링 #7

몽염이 2020. 7. 8. 15:59
반응형

* 안드로이드 프로젝트 클린하는 방법

  - build > Clean Project

  - 개발을 하다보면 이유 없이 오류가 나는 경우가 있다. 

새로 추가한 리소스를 다른 파일에서 참조 하지 못하거나

정상동작 하던 소스도 오류가 나는데 오류가 아닌 경우

그래서 개발하면서 많은 변동이 생기거나 꼬였을 때 이미지 파일 등 외부파일을 프로젝트에 포함 시켰을 때

Clean Project를 해주면 오류같지 않은 오류는 벗어날 수 있다

틈틈히 Clean 하자~~!!

  - 참고 : Android 이클립스 아무 이유없이 오류나는 경우 https://jhrun.tistory.com/95

 

Android 이클립스 아무 이유없이 오류가 나는 경우 - 최소한의 오류만 나게 하기(Android Lint/Clean)

오류가 날 이유가 없는데도 오류를 뿜으면서 빌드가 안되는 경우가 있습니다. 이런 빨간색 X표시는 개발자의 수명을 10년치씩 줄어들게 해줍니다. 꼭 고쳐야 할 필요 없는 애러까지도 나게 하

jhrun.tistory.com

 

* 안드로이드 스튜디오가 실행되지 않거나, 화면이 보이지 않고 오류가 발생해서 안드로이드 스튜디오 자체를 볼 수 없을 때 - 다시 설치하자!

-  안드로이드 스튜디오가 실행되고 작업표시줄에서는 확인 되지만!

작업표시줄 안드로이드 스튜디오 아이콘을 눌러도 화면이 보이지 않고

재실행 해도 보이지 않고

재부팅 해도 보이지 않고

별다른 로그 메세지도 없고

오류, 혹은 경고창도 없이

계속 안드로이드 스튜디오가 정상적으로 실행되지 않는다면

다시 설치하는 것이 가장 쉬운 방법이다.

1.  혹시 모르니 작업하는 소스를 백업해두고

2.  초기 설정 방법을 메모해 두고

다시 설치하면 아래 처럼 다시 안드로이드 스튜디오 화면을 볼 수 있다.

나는 5번  정도 안드로이드 스튜디오가 실행되지 않는 오류를 만났고

그중 2번은 아래처럼 재설치해서 해결했고

그중 3번은 아침에 열었을 때는 안되고, 오후에 열었을 때는 되는 원인을 알 수 없는 현상 이었다

원인은 JRE 설정 문제로 예상되는데

아직 정확한 원인은 알지 못한다. 지켜보기로 하자!!

 

 

* LeftMenuActivity 정보를 mnifests > AndroidMainfest.xml에서 삭제함

AndroidMainfest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.bliss.csc.agmhealing">

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

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:usesCleartextTraffic="true">
<activity android:name=".LeftMenuActivity"></activity>   ------- 요것 삭제
<activity android:name=".LoginActivity" />
<activity
android:name=".ui.login.LoginActivity"
android:label="@string/title_activity_login" />--- 불필요한 부분 이고 오류 메세지 떠서 삭제함
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

</manifest>

 

* activity_left_menu.xml에서

가장 큰 androidx.constraintlayout.widget.ConstraintLayout 를 

LinearLayout 변경하고,

orentation vertical로 옵션 추가함

 

* 로그인 버튼을 눌렀을 때, 에러 발생

Run 창에 에러 메세지
V/FA: Recording user engagement, ms: 15731
V/FA: Connecting to remote service
V/FA: onActivityCreated
V/FA: Activity paused, time: 3768815
V/FA: Connection attempt already in progress
I/TextInputLayout: EditText added is not a TextInputEditText. Please switch to using that class instead.
I/TextInputLayout: EditText added is not a TextInputEditText. Please switch to using that class instead.
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.bliss.csc.agmhealing, PID: 8854
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.bliss.csc.agmhealing/com.bliss.csc.agmhealing.LoginActivity}: android.view.InflateException: Binary XML file line #59 in com.bliss.csc.agmhealing:layout/activity_login: Binary XML file line #59 in com.bliss.csc.agmhealing:layout/activity_login: Error inflating class com.google.android.material.button.MaterialButton
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3449)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
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:2066)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Caused by: android.view.InflateException: Binary XML file line #59 in com.bliss.csc.agmhealing:layout/activity_login: Binary XML file line #59 in com.bliss.csc.agmhealing:layout/activity_login: Error inflating class com.google.android.material.button.MaterialButton
Caused by: android.view.InflateException: Binary XML file line #59 in com.bliss.csc.agmhealing:layout/activity_login: Error inflating class com.google.android.material.button.MaterialButton
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.newInstance0(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
at android.view.LayoutInflater.createView(LayoutInflater.java:852)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1004)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:959)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1121)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1124)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1124)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082)
at android.view.LayoutInflater.inflate(LayoutInflater.java:680)
at android.view.LayoutInflater.inflate(LayoutInflater.java:532)
at android.view.LayoutInflater.inflate(LayoutInflater.java:479)
at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:555)
at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:161)
at com.bliss.csc.agmhealing.LoginActivity.onCreate(LoginActivity.java:32)
at android.app.Activity.performCreate(Activity.java:7995)
at android.app.Activity.performCreate(Activity.java:7979)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
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:2066)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Caused by: java.lang.IllegalArgumentException: The style on this component requires your app theme to be Theme.MaterialComponents (or a descendant).
at com.google.android.material.internal.ThemeEnforcement.checkTheme(ThemeEnforcement.java:248)
at com.google.android.material.internal.ThemeEnforcement.checkMaterialTheme(ThemeEnforcement.java:222)
at com.google.android.material.internal.ThemeEnforcement.checkCompatibleTheme(ThemeEnforcement.java:150)
at com.google.android.material.internal.ThemeEnforcement.obtainStyledAttributes(ThemeEnforcement.java:81)
at com.google.android.material.button.MaterialButton.<init>(MaterialButton.java:200)
at com.google.android.material.button.MaterialButton.<init>(MaterialButton.java:191)
... 32 more
I/Process: Sending signal. PID: 8854 SIG: 9

AndroidManifest.xml 파일을 수정해서 발생한 오류 인 줄 알고, 몇일을 해결 못했다

하지만 activity_login.xml 파일에 태그 오류로 발생 한 것이었다. (위 에러 메세지에 빨간색으로 표시된 부분)

친절한 빌더씨~

해당 문제로 발생했던 오류 키워드들

- did not find frame

- Unable to start activity ComponentInfo

com.google.android.material.button.MaterialButton -> Button 으로 변경 후 성공!!!

 

* 사용자 인증에 사용자 회원가입 성공

* 사용자 회원가입, 로그인 기능 완성!!

드디어 7강 완료 했다

 

6강 글을 처음 작성한 날짜가 6월 23일이니 한달 걸린 것인가???!!!  한달에 한 강의는 너무하다.  공부 시간도 늘리고 내 자존감 조각모음 속도도 올리자. 아자자자!!

오틸라님 무한 감사드립니다~~!

 

* 7강 강의 링크

youtu.be/U0udm-FxZ1c

 

반응형