๋ชฉ๋กAndroid (92)
๐ฑ dreaming DiNO
https://sjhp.tistory.com/3

1. scrcpy ์ค์น brew install scrcpy brew install android-platform-tools 2. adb ๋๋ฐ์ด์ค ์ฐ๊ฒฐ 3. ์คํ scrcpy ์ฌ๋ฌ device scrcpy ๋์ฐ๊ณ ์ถ์๋ 1. 2๊ฐ ๋์ฐ๊ณ ์ถ์ผ๋ฉด ํฐ๋ฏธ๋ 2๊ฐ๋ฅผ ๋์์ ๊ฐ๊ฐ ๋ช ๋ น์ด ์คํ scrcpy --serial [๋๋ฐ์ด์ค serialNo OR wifi IP] 2. adb device ์์ ๋์จ ์ ๋ณด๊ฐ serial No. ์ถ์ฒ: https://www.downloadsource.net/how-to-use-multiple-phones-with-scrcpy-setup-two-phones-with-scrcpy/n/21115/

1. Project ์ค์ , google-services.json ํ์ผ ๋ฃ๊ธฐ, gradle ์ค์ 2. Tool - Firebase - Authentication (๋น ์ง gradle ์์ ์ ์์ผ๋ฏ๋ก ์ฌ๊ธฐ์๋ SDK ์ฐ๊ฒฐํด์ ๋ฃ์ด์ฃผ๊ธฐ) 3. RegisterFragment.kt private lateinit var auth: FirebaseAuth override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View { binding = DataBindingUtil.inflate(inflater, R.layout.fragment_register, container, false) w..
1. color -> bottom_navigation_item_selector.xml ๋ง๋ค๊ธฐ 2. itemTextColor, itemIconTint ์ ์ฉ

suspend ํจ์ ์์ฐจ์ ์คํ SecondFragment.kt binding.checkBtn.setOnClickListener { secondViewModel.exampleSuspend() } SecondViewModel.kt fun exampleSuspend() { viewModelScope.launch(Dispatchers.IO) { val time = measureTimeMillis { // ์์์๊ฐ // ๋น๋๊ธฐ ์คํ๊ณผ ์ฝ๋ฐฑ์ ์์ฐจ์ ์ผ๋ก ๋ง๋ค์ด ์ค๋ค! val one = doSomethingUsefulOne() val two = doSomethingUsefulTwo() println("The answer is ${one + two}") } println("Completed in $time ms") ..
Basic SecondFragment.kt binding.checkBtn.setOnClickListener { secondViewModel.exampleSuspend() } SecondViewModel.kt fun exampleSuspend() = runBlocking { launch { repeat(5) { i -> println("Coroutine A, $i") } } launch { repeat(5) { i -> println("Coroutine B, $i") } } println("Coroutine Outer") } I: Coroutine Outer I: Coroutine A, 0 I: Coroutine A, 1 I: Coroutine A, 2 I: Coroutine A, 3 I: Coroutin..

๋ฌธ์ ๋ฐ์ Google Play ์คํ ์ด๋ฅผ ํตํด ์ด๋ฏธ ๋ฐฐํฌ๋์ด ์ค์น๋ ๊ธฐ์กด ์ฑ์ ์์ โ ์ฌ๋ฐฐํฌ ์์ฒญ์ด ๋ค์ด์ด PJT ์ฝ๋ ์์ โ Signed APK (release version) ์์ฑ $ adb install [apk ํ์ผ ์ด๋ฆ] ๋ช ๋ น์ด ์คํ ์, 'ํจํค์ง ์๋ช ์ด ์ด์ ๋ฒ์ ๊ณผ ๋ง์ง ์์ ์ค์นํ ์ ์์' Error adb: failed to install /Users/.../Desktop/app-release.apk: Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package [ํจํค์ง๋ช ] signatures do not match previously installed version; ignoring!] ์์ธ ๋ฐฐํฌ๋ APK๋ ๊ตฌ๊ธ์ ๋ณ๋ ์๋ช ์ด ๋ค์ด๊ฐ ํ์ผ๋ก ๋ณด์ธ๋ค..
์ค๋ฅ ๋ฐ์ > Task :face:bundleReleaseLocalLintAar FAILED Execution failed for task ':face:bundleReleaseLocalLintAar'. > Direct local .aar file dependencies are not supported when building an AAR. The resulting AAR would be broken because the classes and Android resources from any local .aar file dependencies would not be packaged in the resulting AAR. Previous versions of the Android Gradle Plugin pr..

์๋๋ก์ด๋ ์คํ๋์ค์์ release ๋ก ๋น๋ํ ๋์ ์๋์ ๊ฐ์ ์ค๋ฅ ๋ฉ์์ง the apk for your currently selected variant is not signed. please specify a signing configuration. โ โ * app ์์ ๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ๋ฒํผ์ ํด๋ฆญํ์ฌ์ ๋ณด์ฌ์ง๋ ํ์ ๋ฉ๋ด์์ "Open Module Settings" ๋ฉ๋ด๋ฅผ ํด๋ฆญํ๋ค. โ * Build Variants ๋ฅผ ํด๋ฆญํ ํ, Build Types ํญ์ ํด๋ฆญํ๊ณ release ๋ฅผ ์ ํํ๋ค. ๊ทธ๋ฆฌ๊ณ , Signing Config ์ ์ ์ ํ ํญ๋ชฉ์ ์ ํํ๋ค. ๋ง์ฝ Signining Config ์ ์๋ฌด ๊ฒ๋ ์ ํํ ์ ์๋ค๋ฉด Modules ๋ฅผ ํด๋ฆญํ ํ, Signing Configs ํญ์ ํด๋ฆญํ์ฌ..