24,200원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
ListView에서 해당 item의 클릭 이벤트는 어떻게 적용시키나요?
ListView를 공부하다가 해당 item을 클릭 했을때 이벤트 처리가 궁금해서 찾아봤는데 아직 내공이 부족한지 정보를 못찾아서 질문드립니다미리 답변 감사합니다
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
databinding 오류 관련해서 문의드립니다
안녕하세요?명언앱 만들기에서 데이터바인딩할 때부터 오류가 나서무시하고 메인 액티비티에서 <layout>으로 감싸 주었는데그뒤 private lateinit var binding = ActivityMainBinding에서 또 오류가 나서 진행을 못하게 되었습니다.해결 방법을 말씀해 주시면 감사하겠습니다.감사합니다.
- 해결됨[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
프래그먼트 오류 입니다
실행 시켰을 때 아래와 같은 오류가 나옵니다. 여기서 build.gradle에서 compileSdk 를 34로 변경해 주면 실행 버튼 자체가 비활성화 됩니다 대체 왜 이런지...제발 도와주세요ㅠㅠ
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
새 프로젝트 만들어서 실행 할때 마다 에러가 뜹니다
An issue was found when checking AAR metadata: 1. Dependency 'androidx.activity:activity:1.8.0' requires libraries and applications that depend on it to compile against version 34 or later of the Android APIs. :app is currently compiled against android-33. Recommended action: Update this project to use a newer compileSdk of at least 34, for example 34. Note that updating a library or application's compileSdk (which allows newer APIs to be used) can be done separately from updating targetSdk (which opts the app in to new runtime behavior) and minSdk (which determines which devices the app can be installed on). 새로 프로젝트 만들어서 실행하면 위 메시지가 떠서 build.gradle.kts의compileSdk = 33를 34로 매번 바꾸고 있는데 혹시 무슨 설정을 바꾸거나 업데이트를 해서 이후 안뜨게 할수는 없는지요?
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
리얼타임 데이터베이스의 저장하기,불러오기 부분은 완성 코드가 없나요? ㅠ
package com.android.diet_memo import android.app.DatePickerDialog import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log import android.view.LayoutInflater import android.widget.Button import android.widget.DatePicker import android.widget.EditText import android.widget.ListView import androidx.appcompat.app.AlertDialog import com.android.diet_memo.databinding.ActivityMainBinding import com.google.firebase.database.DataSnapshot import com.google.firebase.database.DatabaseError import com.google.firebase.database.ValueEventListener import com.google.firebase.database.ktx.database import com.google.firebase.ktx.Firebase import java.util.Calendar import java.util.GregorianCalendar class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding // private lateinit var 와 lazy를 쓰는경우 정확히 어떤차이? val dataModelList = mutableListOf<DataModel>() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val database = Firebase.database val myRef = database.getReference("시발 개좆같은 fianl") val listView = findViewById<ListView>(R.id.mainLV) val adapter_list = ListVeiwAdapter(dataModelList) listView.adapter = adapter_list myRef.addValueEventListener(object : ValueEventListener { override fun onDataChange(snapshot: DataSnapshot) { for (dataModel in snapshot.children) { Log.d("Data", dataModel.toString()) dataModelList.add(dataModel.getValue(DataModel::class.java)!!) } Log.d("DataMoel",dataModelList.toString()) } override fun onCancelled(error: DatabaseError) { TODO("Not yet implemented") } }) binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) binding.writebtn.setOnClickListener { val mDialogView = LayoutInflater.from(this).inflate(R.layout.custom_dialog, null) val mBuilder = AlertDialog.Builder(this) .setView(mDialogView) .setTitle("운동 메모 다이얼로그") val mAlertDialog = mBuilder.show() val DateSelectBtn = mAlertDialog.findViewById<Button>(R.id.dateSelectBtn) var dateText = "" //dateText 버튼은 변경되니까 var로 DateSelectBtn?.setOnClickListener { val today = GregorianCalendar() val year: Int = today.get(Calendar.YEAR) val month: Int = today.get(Calendar.MONTH) val date: Int = today.get(Calendar.DATE) val dlg = DatePickerDialog(this, object : DatePickerDialog.OnDateSetListener { override fun onDateSet( view: DatePicker?, year: Int, month: Int, dayOfMonth: Int ) { Log.d("Main", "${year}, ${month + 1}, ${dayOfMonth}") DateSelectBtn.setText("${year}, ${month + 1}, ${dayOfMonth}") dateText = "${year}, ${month + 1}, ${dayOfMonth}" // dateText를 이런식으로 묶음 } }, year, month, date) dlg.show() } val saveBtn = mAlertDialog.findViewById<Button>(R.id.saveBtn) saveBtn?.setOnClickListener { // Write a message to the database val healMemo = mAlertDialog.findViewById<EditText>(R.id.healthMemo)?.text.toString() val database = Firebase.database val myRef = database.getReference("final") val model = DataModel(dateText, healMemo) //계속 이런식으로 껍데기를 만드는걸 연습해야할듯,,? myRef.setValue(model) myRef .push() .setValue(model) mAlertDialog.dismiss() } } } }리스트뷰 생성후 어뎁터 연결하는부분 따라치고나서부터 알수없는 에러로,,연결이 되지않습니다42번째 라인dataModelList.add(dataModel.getValue(DataModel::class.java)!!) 부분에서 오류가 났다고 gpt선생님이 그러시는데.. 잘모르겠습니다.package com.android.diet_memo data class DataModel ( val date:String = "", val memo:String = "" )package com.android.diet_memo import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.BaseAdapter import android.widget.TextView class ListVeiwAdapter(val List : MutableList<DataModel>) : BaseAdapter() { override fun getCount(): Int { return List.size } override fun getItem(position: Int): Any { return List[position] } override fun getItemId(position: Int): Long { return position.toLong() } override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View { var convertView = convertView if (convertView == null) { convertView = LayoutInflater.from(parent?.context).inflate(R.layout.listview_item,parent,false) } val date = convertView?.findViewById<TextView>(R.id.ListViewDateArea) val memo = convertView?.findViewById<TextView>(R.id.ListViewMemoArea) date!!.text = List[position].date memo!!.text = List[position].memo Log.d("Test","Date: ${date.text},Memo: ${memo.text}") return convertView!! } }package com.android.diet_memo import android.content.Intent import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.os.Handler import android.util.Log import android.widget.Toast import com.android.diet_memo.databinding.ActivityMainBinding import com.android.diet_memo.databinding.ActivitySplashBinding import com.google.firebase.auth.FirebaseAuth import com.google.firebase.auth.ktx.auth import com.google.firebase.ktx.Firebase import java.lang.Exception class Splash : AppCompatActivity() { private lateinit var binding: ActivitySplashBinding private lateinit var auth: FirebaseAuth override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivitySplashBinding.inflate(layoutInflater) setContentView(binding.root) auth = Firebase.auth try { Log.d("SPLASH", auth.currentUser!!.uid) Toast.makeText(this,"원래 비회원 로그인이 되어있는 사람입니다",Toast.LENGTH_LONG).show() // splash 부분 Handler().postDelayed({ startActivity(Intent(this, MainActivity::class.java)) finish() },3000) // splash 부분(끝) } catch (e: Exception) { Log.d("fxxk", "회원가입 시켜줘야함") //실패하고, 회원가입 시켜줘야하므로 catch 부분에 예외처리를 해주고,익명로그인 창으로 뜨게한다. auth.signInAnonymously() //firebase 익명로그인 하는 코드 시작부분 .addOnCompleteListener(this) { task -> if (task.isSuccessful) { // Sign in success, update UI with the signed-in user's information Toast.makeText(this,"비회원 로그인 성공", Toast.LENGTH_LONG).show() // splash 부분 Handler().postDelayed({ startActivity(Intent(this, MainActivity::class.java)) finish() },3000) // splash 부분(끝) } else { // If sign in fails, display a message to the user. Toast.makeText(this,"비회원 로그인 실패", Toast.LENGTH_LONG).show() } } } } }클래스파일 전체입니다
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
에뮬레이터가 작동하지 않아요.
안녕하세요.오류도 안뜨고 성공 메세지가 뜨는데 에뮬레이터가 이 상태에서 앱 실행이 안되네요...ㅠ확인 부탁드려요ㅠ
- 해결됨[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
자꾸 질문을 드려서 죄송합니다
선생님 안녕하세요?버튼 수업을 듣는데 저의 경우는 밑에 바가 아예 나오지를 않아서요, 어디서 잘못된 건지 알 수 있을까요?감사합니다.
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
이미지 태그 질문입니다
이렇게 imageView끝에 />를 해주거나이렇게 해주는거나 똑같은것같은데 상관없죠?
- 해결됨[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
질문 있습니다!
안녕하세요?이번에도 글씨가 빨간색으로 나와 문의드립니다.해결 방법을 말씀해 주시면 감사하겠습니다.감사합니다.
- 해결됨[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
리스트뷰/어댑터 강의 관련 질문 있습니다.
안녕하세요?선생님 강의에서는 포지션이 빨갛게 나오지 않았는데제 것은 포지션이 빨갛게 뜹니다.옵션 엔터하면 될까요?감사합니다.
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
리사이클러 뷰 안보임
안녕하세요 개발자님! 왕초보편 수강하고있는 대학생입니다. 다름이아니라 개발자님의 앱 개발 왕초보편 강의 중 트로트 가수 앱 만들기를 조금 변형시켜서, 프래그먼트에서 객체 데이터를 전달받고 보여주는 리사이 클러 뷰를 만들어 보려고 했습니다.근데 실행시켜 보니 딱히 오류는 뜨지 않지만, 리사이클러 뷰가 보이지 않는 현상을 겪고 있어서 질문드립니다!도와주시면 감사하겠습니다! 구글 드라이브 : https://drive.google.com/file/d/1hiygqt0gl78embhelzkivfPbgyDGb3WV/view?usp=drive_linkadapterpackage com.wosong.musiclist import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.ImageView import android.widget.TextView import androidx.recyclerview.widget.RecyclerView class RVAdapter(val context: MutableList<RVdata>) : RecyclerView.Adapter<RVAdapter.ViewHolder>(){ var data = mutableListOf<RVdata>() override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RVAdapter.ViewHolder { val view = LayoutInflater.from(parent.context).inflate(R.layout.rv_item,parent,false) return ViewHolder(view) } override fun onBindViewHolder(holder: RVAdapter.ViewHolder, position: Int) { holder.bindItems(data[position]) } override fun getItemCount(): Int { return data.size } inner class ViewHolder(itemView : View) : RecyclerView.ViewHolder(itemView){ fun bindItems(item : RVdata){ val rv_text = itemView.findViewById<TextView>(R.id.rvTextId) rv_text.text = item.text val image = itemView.findViewById<ImageView>(R.id.itemimage) image.setImageResource(item.img) } } } data classpackage com.wosong.musiclist data class RVdata( val text : String, val img : Int ) item_xml<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="50dp"> <ImageView android:layout_width="50dp" android:layout_height="match_parent" android:src="@drawable/zino" android:id="@+id/itemimage" /> <TextView android:layout_margin="10dp" android:textStyle="bold" android:text="List of songs" android:id="@+id/rvTextId" android:textSize="20sp" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout> fragmentpackage com.wosong.musiclist import android.os.Bundle import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.ImageView import androidx.navigation.findNavController import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView class sing1Fragment : Fragment() { // TODO: Rename and change types of parameters override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) } override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { // Inflate the layout for this fragment val view = inflater.inflate(R.layout.fragment_sing1, container, false) val items : MutableList<RVdata> = mutableListOf() items.add(RVdata(img = R.drawable.jazzyfact,text = "A tribe called jazzyfact")) items.add(RVdata(img = R.drawable.jazzyfact,text = "A tribe called jazzyfact")) items.add(RVdata(img = R.drawable.jazzyfact,text = "A tribe called jazzyfact")) val rv = view.findViewById<RecyclerView>(R.id.JazzyFactView) val rvAdapter = RVAdapter(items) rv.adapter = rvAdapter rv.layoutManager = LinearLayoutManager(context) view.findViewById<ImageView>(R.id.image2).setOnClickListener{ it.findNavController().navigate(R.id.action_sing1Fragment_to_sing2Fragment) } view.findViewById<ImageView>(R.id.image3).setOnClickListener{ it.findNavController().navigate(R.id.action_sing1Fragment_to_sing3Fragment) } return view } }
- 해결됨[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
주사위앱 관련해서 질문 있습니다!
안녕하세요?오늘도 선생님 강의와 똑같이 따라한 것 같은데주사위가 선생님 버전보다 밑에 있고 버튼은 더 밑에 있어서 보이지 않습니다.혹시 해결 방법을 알고 계시면 알려 주시면 감사하겠습니다.풍요로운 한가위 보내시기를 바라고 항상 감사드립니다. 그리고 제 코드는<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#008000" android:orientation="vertical" tools:context=".MainActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="200dp" android:layout_marginTop="100dp"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="30sp" android:textColor="@color/black" android:layout_margin="20dp" android:gravity="center" android:textStyle="bold" android:text="인생은 주사위 한방에 가는 거 아니겠습니까?"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="200dp"> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="200dp" android:weightSum="2"> <ImageView android:src="@drawable/dice_1" android:layout_width="120dp" android:layout_height="120dp" android:layout_weight="1"/> <ImageView android:src="@drawable/dice_2" android:layout_width="120dp" android:layout_height="120dp" android:layout_weight="1"/> </LinearLayout> <Button android:text="인생 고고" android:layout_width="match_parent" android:background="@color/black" android:textColor="@color/white" android:layout_height="50dp" android:layout_margin="50dp"/> </LinearLayout>입니다!
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
BTS 앱 이후 트와이스 앱을 실행 문의
트와이스 앱을 수정 실행 하면 왜 BTS의 매인 activity가 먼저 보여주고 트아와이스가 실행 되는지요?강사님 강의에서도 그렇게 되는데 궁급합니다분명 소스는 따로 존재하고 실행도 따로 하는데 앱이 하나 같이 보입니다.
- 해결됨[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
로그 관련 질문입니다!
안녕하세요?선생님 강의와 똑같이 기입한 것 같은데선생님 화면에는 간단하게 "여기는 테스트 값입니다"가 나오지만 저는 저렇게 장황하게 나옵니다.혹시 이유를 알려 주실 수 있을까요?감사합니다.
- 해결됨[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
데이터바인딩 질문 있습니다!
선생님 안녕하세요.질문을 많이 드리는 것 같아 죄송합니다.이렇게 오류가 뜨는데 해결방법을 알려 주시면 감사하겠습니다.감사합니다.
- 해결됨[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
질문 있습니다!
안녕하세요? 트와이스 앱 강의에서 이렇게 오류가 뜨는데혹시 해결 방법을 알려 주실 수 있을까요?감사합니다.
- 해결됨[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
트와이스 앱 관련해서 질문 있습니다.
안녕하세요? 강의를 보고 따라했는데 강사님의 앱 실행 화면과제 앱 실행 화면이 달라서 문의드립니다.맨 오른쪽에 있는 라인의 사진들이 비율이 맞지 않는 것처럼 보이는데,혹시 해결 방법이 있을까요?2. Toast를 기입하고 앱 실행을 했는데 에러가 났다고 하면서 실행이 되지 않는데 이것도 해결 방법이 있을까요?감사합니다.
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
태그 질문이요
이런식으로 CaredView를 이미지 뷰로 크게 감싸주면세개의 이미지가 둥글게 나와야 하는것 아닌가요? 왜 하나만 나오나요?
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
D-DAY앱 디데이 계산에 오류가 있는데 해결하고싶어요
9월 19일과 9월 20일 선택 시 1일 차이로 잘 나옵니다.하지만 8월 31일과 9월 1일 선택 시 0일 차이로 나옵니다. Log찍어보면 두 날짜의 밀리초가 같게 나옵니다. 이유가 궁금합니다! (다른 방법 찾아서 해도 밀리초를 변환해서 계산하는 방법은 다 같은 결과가 나왔습니다.) package com.yndoo.dday import android.app.DatePickerDialog import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log import android.widget.Button import android.widget.DatePicker import android.widget.TextView import org.w3c.dom.Text import java.text.SimpleDateFormat import java.util.Calendar import java.util.GregorianCalendar import java.util.concurrent.TimeUnit class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val startButton = findViewById<Button>(R.id.startBtn) val endButton = findViewById<Button>(R.id.endBtn) var startDate = "" var endDate = "" var calendar_start = Calendar.getInstance() var calendar_end = Calendar.getInstance() startButton.setOnClickListener { val today = GregorianCalendar() val year = today.get(Calendar.YEAR) val month = today.get(Calendar.MONTH) val day = today.get(Calendar.DATE) val dlg = DatePickerDialog(this, object: DatePickerDialog.OnDateSetListener{ override fun onDateSet(view: DatePicker?, year: Int, month: Int, dayOfMonth: Int) { startDate = "${year}${month+1}${dayOfMonth}" Log.d("날짜확인1",startDate) calendar_start.set(year, month+1, dayOfMonth) calendar_start.apply { set(Calendar.HOUR_OF_DAY, 0) set(Calendar.MINUTE, 0) set(Calendar.SECOND, 0) set(Calendar.MILLISECOND, 0) } } }, year, month, day) dlg.show() } endButton.setOnClickListener { val today = GregorianCalendar() val year = today.get(Calendar.YEAR) val month = today.get(Calendar.MONTH) val day = today.get(Calendar.DATE) val dlg = DatePickerDialog(this, object: DatePickerDialog.OnDateSetListener{ override fun onDateSet(view: DatePicker?, year: Int, month: Int, dayOfMonth: Int) { endDate = "${year}${month+1}${dayOfMonth}" Log.d("날짜확인2",endDate) calendar_end.set(year, month+1, dayOfMonth) calendar_end.apply { set(Calendar.HOUR_OF_DAY, 0) set(Calendar.MINUTE, 0) set(Calendar.SECOND, 0) set(Calendar.MILLISECOND, 0) } val finalDate = TimeUnit.MILLISECONDS.toDays(calendar_end.timeInMillis - calendar_start.timeInMillis) + 1 //val finalDate = (calendar_end.timeInMillis - calendar_start.timeInMillis)/(24*60*60*1000) + 1 Log.d("@@@",TimeUnit.MILLISECONDS.toDays(calendar_start.timeInMillis).toString()) Log.d("@@@",TimeUnit.MILLISECONDS.toDays(calendar_end.timeInMillis).toString()) findViewById<TextView>(R.id.ddayText).setText("D+" + finalDate.toString()) } }, year, month, day) dlg.show() } } }
- 해결됨[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
프래그먼트 오류가 납니다!
5강의 내비게이션 프래그먼트 강의 수강 중 오류가 납니다.코드 작성 시 빨간 줄 뜨는 건 없었는데 실행 시키면 arr metadata 체크 할 때 8개의 오류가 난다고 뜹니다 8 issues were found when checking AAR metadata: 1. Dependency 'androidx.navigation:navigation-common:2.7.2' requires libraries and applications that depend on it to compile against version 34 or later of the Android APIs. :app is currently compiled against android-33. Recommended action: Update this project to use a newer compileSdk of at least 34, for example 34. Note that updating a library or application's compileSdk (which allows newer APIs to be used) can be done separately from updating targetSdk (which opts the app in to new runtime behavior) and minSdk (which determines which devices the app can be installed on). 2. Dependency 'androidx.navigation:navigation-common-ktx:2.7.2' requires libraries and applications that depend on it to compile against version 34 or later of the Android APIs. :app is currently compiled against android-33. Recommended action: Update this project to use a newer compileSdk of at least 34, for example 34. Note that updating a library or application's compileSdk (which allows newer APIs to be used) can be done separately from updating targetSdk (which opts the app in to new runtime behavior) and minSdk (which determines which devices the app can be installed on). 3. Dependency 'androidx.navigation:navigation-runtime:2.7.2' requires libraries and applications that depend on it to compile against version 34 or later of the Android APIs. :app is currently compiled against android-33. Recommended action: Update this project to use a newer compileSdk of at least 34, for example 34. Note that updating a library or application's compileSdk (which allows newer APIs to be used) can be done separately from updating targetSdk (which opts the app in to new runtime behavior) and minSdk (which determines which devices the app can be installed on). 4. Dependency 'androidx.navigation:navigation-ui:2.7.2' requires libraries and applications that depend on it to compile against version 34 or later of the Android APIs. :app is currently compiled against android-33. Recommended action: Update this project to use a newer compileSdk of at least 34, for example 34. Note that updating a library or application's compileSdk (which allows newer APIs to be used) can be done separately from updating targetSdk (which opts the app in to new runtime behavior) and minSdk (which determines which devices the app can be installed on). 5. Dependency 'androidx.navigation:navigation-runtime-ktx:2.7.2' requires libraries and applications that depend on it to compile against version 34 or later of the Android APIs. :app is currently compiled against android-33. Recommended action: Update this project to use a newer compileSdk of at least 34, for example 34. Note that updating a library or application's compileSdk (which allows newer APIs to be used) can be done separately from updating targetSdk (which opts the app in to new runtime behavior) and minSdk (which determines which devices the app can be installed on). 6. Dependency 'androidx.navigation:navigation-ui-ktx:2.7.2' requires libraries and applications that depend on it to compile against version 34 or later of the Android APIs. :app is currently compiled against android-33. Recommended action: Update this project to use a newer compileSdk of at least 34, for example 34. Note that updating a library or application's compileSdk (which allows newer APIs to be used) can be done separately from updating targetSdk (which opts the app in to new runtime behavior) and minSdk (which determines which devices the app can be installed on). 7. Dependency 'androidx.navigation:navigation-fragment-ktx:2.7.2' requires libraries and applications that depend on it to compile against version 34 or later of the Android APIs. :app is currently compiled against android-33. Recommended action: Update this project to use a newer compileSdk of at least 34, for example 34. Note that updating a library or application's compileSdk (which allows newer APIs to be used) can be done separately from updating targetSdk (which opts the app in to new runtime behavior) and minSdk (which determines which devices the app can be installed on). 8. Dependency 'androidx.navigation:navigation-fragment:2.7.2' requires libraries and applications that depend on it to compile against version 34 or later of the Android APIs. :app is currently compiled against android-33. Recommended action: Update this project to use a newer compileSdk of at least 34, for example 34. Note that updating a library or application's compileSdk (which allows newer APIs to be used) can be done separately from updating targetSdk (which opts the app in to new runtime behavior) and minSdk (which determines which devices the app can be installed on). 이건 33으로 되어 있는데 34로 바꾸면 실행 버튼이 비활성화 됩니다.이것도 제대로 되어 있는 거 같은데 뭐가 문젤까요ㅠ