작성
·
961
·
수정됨
0
수정 버튼을 누르고 이후에 수정하는 페이지가 나올때 binding을 통해 dataModel 값들을 불러오지 못하고 오류가 납니다
class BoardEditActivity : AppCompatActivity() {
private lateinit var key:String
private lateinit var binding : ActivityBoardEditBinding
private val TAG = BoardEditActivity::class.java.simpleName
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = DataBindingUtil.setContentView(this, R.layout.activity_board_edit)
key = intent.getStringExtra("key").toString()
getBoardData(key)
}
private fun getBoardData(key : String){
val postListener = object : ValueEventListener {
override fun onDataChange(dataSnapshot: DataSnapshot) {
val dataModel = dataSnapshot.getValue(BoardModel::class.java)
Log.d(TAG, dataModel.toString())
// Log.d(TAG, dataModel!!.title)
// Log.d(TAG, dataModel!!.time)
binding.titleArea.setText(dataModel?.title)
binding.contentArea.setText(dataModel?.content)
}
override fun onCancelled(databaseError: DatabaseError) {
// Getting Post failed, log a message
Log.w(TAG, "loadPost:onCancelled", databaseError.toException())
}
}
FBRef.boardRef.child(key).addValueEventListener(postListener)
}
}
이게 현재 코드입니다
여기서 저번 강의때 try catch 구문 쓰셨던 것과 같은 문제가 발생합니다
그래서 try catch 를 쓰면 오류가 나와 페이지로만 이동하게 되어 아무것도 표시되지 않습니다
안드로이드 스튜디오 버전은 Electric Eel 입니다
답변 1
0
혹시 에러로그가 어떻게 나오나요?
Log.w(TAG, "loadPost:onCancelled", databaseError.toException())
이 부분에서 어떻게 출력되나요?
안드로이드 스튜디오 로그가 안나오는 것 같은데
안드로이드 스튜디오 재시작 / 에뮬레이터 재시작을 하셔서 어떻게 나오는지
스크린샷과 에러메세지를 공유해주시면 살펴볼게요~
저는 s22울트라로 연결해서 시험중에 있습니다
먼저 로그를 찍으려고 했을때
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.test, PID: 31888
java.lang.NullPointerException
at com.example.thebullcamp.board.BoardEditActivity$getBoardData$postListener$1.onDataChange(BoardEditActivity.kt:44)
at com.google.firebase.database.core.ValueEventRegistration.fireEvent(ValueEventRegistration.java:75)
at com.google.firebase.database.core.view.DataEvent.fire(DataEvent.java:63)
at com.google.firebase.database.core.view.EventRaiser$1.run(EventRaiser.java:55)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.app.ActivityThread.main(ActivityThread.java:8757)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)
이런식으로 오류가 나옵니다
수정페이지가 나타나자마자 꺼집니다
오류 코드 에서 나오는 44번째에 있는 건
Log.d(TAG, dataModel!!.title)
입니다
또 이러한 종류의 애러도 있습니다
Exception thrown during dispatchAppVisibility Window{f36eca4 u0 com.example.test/com.example.test.board.BoardEditActivity EXITING}
android.os.DeadObjectException
at android.os.BinderProxy.transactNative(Native Method)
at android.os.BinderProxy.transact(BinderProxy.java:662)
at android.view.IWindow$Stub$Proxy.dispatchAppVisibility(IWindow.java:658)
at com.android.server.wm.WindowState.sendAppVisibilityToClients(WindowState.java:4197)
at com.android.server.wm.WindowContainer.sendAppVisibilityToClients(WindowContainer.java:1246)
at com.android.server.wm.WindowToken.setClientVisible(WindowToken.java:431)
at com.android.server.wm.ActivityRecord.setClientVisible(ActivityRecord.java:7682)
at com.android.server.wm.ActivityRecord.onAnimationFinished(ActivityRecord.java:8552)
at com.android.server.wm.WindowContainer$$ExternalSyntheticLambda4.onAnimationFinished(Unknown Source:2)
at com.android.server.wm.SurfaceAnimator.lambda$getFinishedCallback$0(SurfaceAnimator.java:140)
at com.android.server.wm.SurfaceAnimator.$r8$lambda$lRxTVOJy8fX752UbrFno9INW9hE(Unknown Source:0)
at com.android.server.wm.SurfaceAnimator$$ExternalSyntheticLambda1.run(Unknown Source:8)
at com.android.server.wm.SurfaceAnimator.lambda$getFinishedCallback$1(SurfaceAnimator.java:150)
at com.android.server.wm.SurfaceAnimator.$r8$lambda$4PiCdaEsT4mA6LQVhqpeM5EoU9c(Unknown Source:0)
at com.android.server.wm.SurfaceAnimator$$ExternalSyntheticLambda0.onAnimationFinished(Unknown Source:4)
at com.android.server.wm.LocalAnimationAdapter.lambda$startAnimation$0(LocalAnimationAdapter.java:67)
at com.android.server.wm.LocalAnimationAdapter.$r8$lambda$gPDCFw0mQLltlXqA3mL6IUKCwLs(Unknown Source:0)
at com.android.server.wm.LocalAnimationAdapter$$ExternalSyntheticLambda0.run(Unknown Source:6)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.os.HandlerThread.run(HandlerThread.java:67)
at com.android.server.ServiceThread.run(ServiceThread.java:44)
2023-03-13 22:21:02.334 InputManager-JNI system_server W Input channel object 'de456b3 com.example.test/com.example.test.board.BoardEditActivity (client)' was disposed without first being removed with the input manager!
BoardEditActivity로 오류를 찍었을 때 다른 경고 로그는 안나오고 위에 로그만 남아있습니다