24,200원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
앱 실행시 NotFoundException 오류
앱 실행시키면 이런 오류가 나요... 강의 코드와 비교도 해보고 저 스스로 최대한 찾아보려고했지만 못 찾겠어요 도와주세요 <?xml version="1.0" encoding="utf-8"?><layout> <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" tools:context=".MainActivity" android:background="#008000" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="200dp" android:layout_marginTop="100dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="32sp" 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" android:weightSum="2"> <ImageView android:id="@+id/dice1" android:src="@drawable/dice_1" android:layout_width="120dp" android:layout_height="120dp" android:layout_weight="1"/> <ImageView android:id="@+id/dice2" android:src="@drawable/dice_1" android:layout_width="120dp" android:layout_height="120dp" android:layout_weight="1"/> </LinearLayout> <Button android:id="@+id/diceStartBtn" android:text="인생 고고" android:backgroundTint="@color/black" android:textColor="@color/white" android:layout_width="match_parent" android:layout_height="50dp" android:layout_margin="50dp"/> </LinearLayout></layout> package com.johnson.randomdice_appimport androidx.appcompat.app.AppCompatActivityimport android.os.Bundleimport android.util.Logimport android.widget.Toastimport androidx.databinding.DataBindingUtilimport com.johnson.randomdice_app.databinding.ActivityMainBindingimport kotlin.random.Randomclass MainActivity : AppCompatActivity() { private lateinit var binding : ActivityMainBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) binding = DataBindingUtil.setContentView(this, R.layout.activity_main) val diceImage1 = binding.dice1 val diceImage2 = binding.dice2 binding.diceStartBtn.setOnClickListener { Toast.makeText(this, "굴립니다", Toast.LENGTH_LONG).show() Log.d("MainActivity", Random.nextInt(1, 6).toString()) Log.d("MainActivity", Random.nextInt(1, 6).toString()) val number1 = Random.nextInt(1, 6) val number2 = Random.nextInt(1, 6) if (number1 == 1) { diceImage1.setImageResource(R.drawable.dice_1) } else if (number1 == 2){ diceImage1.setImageResource(R.drawable.dice_2) } else if (number1 == 3){ diceImage1.setImageResource(R.drawable.dice_3) } else if (number1 == 4){ diceImage1.setImageResource(R.drawable.dice_4) } else if (number1 == 5){ diceImage1.setImageResource(R.drawable.dice_5) } else { diceImage1.setImageResource(R.drawable.dice_6) } if (number2 == 1) { diceImage2.setImageResource(R.drawable.dice_1) } else if (number2 == 2){ diceImage2.setImageResource(R.drawable.dice_2) } else if (number2 == 3){ diceImage2.setImageResource(R.drawable.dice_3) } else if (number2 == 4){ diceImage2.setImageResource(R.drawable.dice_4) } else if (number2 == 5){ diceImage2.setImageResource(R.drawable.dice_5) } else { diceImage2.setImageResource(R.drawable.dice_6) } } } }
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
layout으로 감싸는 이유
안녕하세요! 강의 잘 듣고 있습니다. 이미 LinearLayout으로 감싸져 있는 화면을 왜 다시 layout으로 감싸주는 건가요? 이유가 나오지 않아서 여쭤봅니다!!
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
[error]Make sure to call FirebaseApp.initializeApp(Context) first.
androidManifest.xml 에 allowBackup="false" 해야 정상작동되네요... 제가 강의를 띄엄띄엄 들은건지 이부분때문에 좀 헤맸는데 참고하셨음 합니다.
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
사내 방화벽으로 인한 gradle 빌드 오류
처음 안드로이드 스튜디오 프로젝터 생성하고 빌드하는 도중 바로 에러가 발생합니다. Gradle sync failed: Could not install Gradle distribution from 'http://services.gradle.org/distributions/gradle-6.7.1-bin.zip'. (495 ms) Gradle 을 maven 프로젝트로 변경하여 사용할 수 있는 방법이 없을까요?
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
build.gradle 부분 영상과 다르신 분들 참고
classpath 대신 build.gradle(Project) plugins 안에 id 'com.google.gms.google-services' version '4.3.10' apply false 이거 추가하시면 됩니다. apply pugin: 대신 build.gradle(Module) plugins 안에 id 'com.google.gms.google-services' 이거 추가하시면 됩니다. 질문 카테고리를 더 많이 볼거같아서 여기에 올려요
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
btn1.setOnclickListener를 모든 이미지 마다 따로 해주는데 질문이 있습니다.
트와이스 앱 만들기에서, 약 7분 40초 부분에 각 이미지마다 btn을 따로 두고, 하나하나 setOnClickListener를 해주잖아요. 중복 코드를 최소화하는 간결한 방법이 없나요? 검색해보려다가 어떻게 검색해야하는지 감이 안와서 질문 올립니다!
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
폴더가 이런식으로 보이는데.. 강의에서 나온 것처럼 보려면 어떻게 하나요?ㅜㅜ
뭐라고 검색해야하는지 감도 안오네요..ㅠ
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
DataBinding을 통해 버튼의 text를 바꿔보고 싶은데 생각처럼 동작하지 않습니다.
안녕하세요 선생님의 데이터 바인딩 강의를 보던 중 버튼을 누를 때마다 버튼의 텍스트를 바꿀 수는 없을지 해서 코드를 작성해봤습니다. 인터넷을 뒤져보니, xml에 <data> 와 그 안에 <variable> 을 잘 정의해주면 된다고 해서 <variable>의 name을 "activity" 라고 정하고 type은 기본으로 생성해준 MainActivity를 설정했습니다. 그리고 Button의 android:text의 값을 @{activity.text}라고 넣어줬습니다.(이후 MainActivity.kt 에서 생성해주었습니다.) MainActivity.kt에서 text라는 이름을 가진 변수를 "0" 으로 초기화하고, xml에서 설정한 id를 binding 변수에서 찾아 text에 클릭할 때마다 1씩 증가하는 변수를 toString을 통해 넣어줬습니다. 혹시 몰라 Toast를 통해 text를 띄워보았습니다. 하지만 생각처럼 되지는 않았는데요. 혹시 왜인지 알 수 있을까요? [XML] <?xml version="1.0" encoding="utf-8"?> <layout> <data> <variable name="activity" type="com.example.databinding_ex.MainActivity" /> </data> <androidx.constraintlayout.widget.ConstraintLayout 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" tools:context=".MainActivity"> <Button android:id="@+id/testBtnId" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" android:text="@{activity.text}" android:layout_width="wrap_content" android:layout_height="wrap_content"> </Button> </androidx.constraintlayout.widget.ConstraintLayout> </layout> [MainActivity.kt] package com.example.databinding_ex import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.Button import android.widget.Toast import androidx.databinding.DataBindingUtil import androidx.databinding.ObservableField import com.example.databinding_ex.databinding.ActivityMainBinding class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding private var clickedCount = 1 var text = "0" override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // 2. with dataBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main) binding.testBtnId.setOnClickListener { text =(clickedCount++).toString() Toast.makeText(this, text, Toast.LENGTH_LONG).show() binding.invalidateAll() } } }
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
BumbleBee 에서 파이어베이스 연결 헤매시는 분들!!
https://flow9.net/bbs/board.php?bo_table=thisisandroid&wr_id=129 아래 링크 참고하셔서 하시면 됩니다~ 그리고 구글링은 bumblebee firebase connect 대충 이런식으로 검색해서 찾으시면 해결 됩니당~
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
파이어베이스 getValue
제가 개인적으로 만들고 있는 작품이 있는데 firebase의 데이터베이스에서 값을 받아서 add가 되질 않습니다. 빨간줄에서 itemlist는 mutablelistof형의 변수입니다. AlarmData는 data class 입니다. Log.d를 써서 alarmdata.getvalue().toString()을 찍어보면 데이터베이스에 값이 제대로 들어 있는 것을 확인할 수 있으나 getValue(AlarmData::class.java)!!) 이 코드를 입력하면 어플이 실행되고 아예 꺼집니다. 그리고 이 구문을 주석처리하고 나중에 .child(Firebase.auth.currentUser!!.uid)를 추가하니까 어플이 바로 꺼져 버립니다. 에러 문구도 안 뜨고 왜 그런지 잘 모르겠습니다.. 도와주십시오 선생님.!!
- 해결됨[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
Handler 가 deprecated 되었다고 합니다.
문서를 보니 Executor를 사용하라고 하는데, 혹시 Handler로 delay주는 방법을 Executor로 할 수 있는 방법이 있을까요??
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
액티비티 전환이 안됩니다
첫번째 사진에서는 액티비티 전환이 잘 되는데 두번째사진부터는 아래와 같은 에러가 발생하면서 화면 전환이 되지 않습니다. 어떻게 해결하면 좋을까요?
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
새 프로젝트 실행
안녕하세요. 말씀하신 대로 android studio를 깔아서 new project를 했는데, 맨 처음 빌드에서 There was a failure while populating the build operation queue: Failed to create MD5 hash for file content. Failed to create MD5 hash for file content. 데이터 오류(CRC)입니다 이런 오류가 납니다. 구글에서 여러가지 방법을 써봤는데 별다른 효험이 없네요. 혹시 어떻게 해결하시는지 알 수 있을까요. android studio version은 2021.1.1.23이고, 운영체제는 windows입니다.
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
북마크 기능이 작동이 안돼요
소스코드와 에러메세지 첨부합니다! 파이어베이스에 저장은 잘되는데 북마크 버튼을 누르면 에러메세지가 뜨면서 프로그램이 그냥 꺼지네요 이것저것 해보다가 아이템 하나만 남겨놓고 해봐도 안돼서 질문남겨봅니다 ㅠㅠ 망고코드
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
이미지 이름 오류
drawable 폴더에 splash 이미지 파일이 있는데 왜 이미지뷰에서 스플래쉬이미지가 적용이 안될까요?
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
파이어베이스 익명로그인 강의 09:01 부분 문의
해당 부분 에서 FirebaseAuth, Firebase는 자동으로 import가 되는데 Firebase.auth 부분에서 뒤에 auth가 자동 import가 뜨질 않고 Unresolved reference:auth 에러가 계속 발생합니다. 한 번만 확인해주시면 감사하겠습니다. // LoginActivity package com.fitdback.userinterface import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.util.Log import android.widget.Button import android.widget.Toast import com.fitdback.pointdetection.R import com.google.firebase.auth.FirebaseAuth import com.google.firebase.ktx.Firebase class LoginTestActivity : AppCompatActivity() { private lateinit var auth: FirebaseAuth override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_login_test) // Initialize Firebase Auth auth = Firebase.auth val btnAnonymousLogin = findViewById<Button>(R.id.btnAnonymousLogin) btnAnonymousLogin.setOnClickListener { auth.signInAnonymously() .addOnCompleteListener(this) { task -> if (task.isSuccessful) { // Sign in success, update UI with the signed-in user's information Log.d("LoginTestActivity", "signInAnonymously:success") val user = auth.currentUser // updateUI(user) } else { // If sign in fails, display a message to the user. Log.w("LoginTesetActivity", "signInAnonymously:failure", task.exception) Toast.makeText( baseContext, "Authentication failed.", Toast.LENGTH_SHORT ).show() // updateUI(null) } } } } } // build.gradle(app) apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'com.google.gms.google-services' android { compileSdkVersion buildConfig.compileSdk defaultConfig { applicationId 'com.fitdback.userinterface' minSdkVersion buildConfig.minSdk targetSdkVersion buildConfig.targetSdk versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" externalNativeBuild { cmake { arguments '-DANDROID_TOOLCHAIN=clang', '-DANDROID_STL=gnustl_static' cppFlags "-std=c++11","-frtti", "-fexceptions" } } ndk { abiFilters 'armeabi-v7a' } } // externalNativeBuild { // cmake { // path "CMakeLists.txt" // } // } lintOptions { abortOnError false } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } debug { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } aaptOptions { noCompress "tflite" } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } sourceSets { main { jniLibs.srcDirs = ['libs'] } } } repositories { maven { url 'https://google.bintray.com/tensorflow' } flatDir { dirs 'libs' } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation project(':openCVLibrary341') implementation deps.kotlin.stdlib.jdk // implementation(name:'tensorflow-lite', ext:'aar') implementation deps.android.support.appcompatV7 implementation deps.android.support.constraintLayout implementation deps.android.support.design implementation deps.android.support.annotations implementation deps.android.support.supportV13 implementation deps.timber implementation 'org.tensorflow:tensorflow-lite:0.0.0-nightly' implementation 'org.tensorflow:tensorflow-lite-gpu:0.0.0-nightly' // Import the Firebase BoM implementation platform('com.google.firebase:firebase-bom:29.2.1') // Declare the dependency for the Firebase Authentication library // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-auth-ktx' testImplementation deps.junit androidTestImplementation(deps.android.test.espresso, { exclude group: 'com.android.support', module: 'support-annotations' }) }
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
강사님 강의 7:47초쯤 질문있습니다 (JoinActivity로 안넘어 가는 이유)
7분 47초쯤 handler().postDelayed 를 주석처리 안했을때 joinActivity로 넘어가지않고 MainActivity로 넘어갔습니다. 설명을 하지 않고 넘어가셔서 제가 인터넷에 activity 생명주기, firebase auth 검색해봐도 무엇때문에 MainActivity로 넘어가지 않는지 안나오더라구요.. 혹시 auth 서버 통신하는것 때문에 비동기적으로 if문 안에 있는것이 늦게 실행되서 joinActivity로 넘어가지 않는것인가요??? 아니면 생성주기 관련 문제인가요??? 답변 미리 감사드립니다.
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
안드로이드 설치버전
강사님 강의가 예전 강의라서 4.2 버전 설치하면 빌드부터가 안됩니다. (윈도우기준 , 2022년 3월 31일 기준) 2021년 9월 1일날 출시한 arctic fox 버전 이나 2021년 9월 2일 출시한 범블비 버전 설치하세요.. 제가 4.2버전 설치해서 에러나서 세팅하는데 5시간 날리고 얻은 교훈입니다. 다른 수강생들한테 혼란을 방지하고자 이 게시판에 게시글 남깁니다.
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
강사님 email.text.toString() 질문있습니다.
수업 9:00쯤에 email.text.toString() 이 제가 생각하기론는 mainActivity.kt의 지역변수 val 의 email가 있는데 그 mainActivity.kt 의 email 변수가 findviewbyid로의 id값 emailArea를 찾아가지고 EditText의 유저가 입력한 값을 String으로 변환해서 가져온다고 생각했는데 제가 이해한게 맞을까요?? 답변 미리 감사드립니다
- 미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
10분 50초의
강사님 10분 40초경에서 item이 items[position]을 가르키고 items가 MutableList에 있는값이 하나하나씩 들어간다고 하셨는데요. 왜 그런지 전혀 이해가 안되네요 ㅜㅜ 구글 검색해보니 mutableList가 일반 리스트처럼 쓰인다는건 알고 있는데요. 질문1. 이 mutablelist는 그러면fragement_singer1, fragement_singer2, fragement_singer3를 담고 있는건가요?? 질문2. items는 변수니깐 muteblelist 그자체인가요? 질문3. items[position] 여기에서의 position에는 어떤값이 들어가는건가요?? position이 int라고 들어가있고 어떤식으로 들어가는지 모르겠습니다. 많은 질문 죄송합니다 ㅜㅜ