๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’š ๊ฐœ๋ฐœ/์•ˆ๋“œ๋กœ์ด๋“œ58

[Android] APK ์™€ AAB ์˜ ์ฐจ์ด์  ์•ฑ์„ ์™„์„ฑํ•œ ํ›„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ๊ณต(์•ฑ ์ถœ์‹œ)ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ”„๋กœ์ ํŠธ์˜ ์—ฌ๋Ÿฌ ํŒŒ์ผ์„ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด์„œ ๋ฐฐํฌํ•ด์•ผ ํ•œ๋‹ค. * ๋ฐฐํฌ ํŒŒ์ผ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ์˜ ๋ฐฐํฌ ํŒŒ์ผ์€ APK ์™€ AAB ๊ฐ€ ์žˆ๋‹ค. APK(Android Application Package) : ์•ˆ๋“œ๋กœ์ด๋“œ์˜ ์ „ํ†ต์ ์ธ ๋ฐฐํฌ ํŒŒ์ผ๋กœ์„œ ์ปดํŒŒ์ผ๋œ ์ฝ”๋“œ์™€ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฌถ์–ด์„œ ํ‚ค๋กœ ์„œ๋ช…ํ•œ ๊ฒƒ. AAB(Android App Bundle) : 2018๋…„์— ๊ตฌ๊ธ€ IO ์—์„œ ๋ฐœํ‘œํ•œ ์ƒˆ๋กœ์šด ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ๋ฐฐํฌ ํŒŒ์ผ. Play ์Šคํ† ์–ด์— ์˜ฌ๋ฆฌ๋ฉด ์‚ฌ์šฉ์ž ๊ธฐ๊ธฐ์— ๋งž๊ฒŒ ์ตœ์ ํ™”๋œ ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด ์ค€๋‹ค. ์ด๋•Œ ์•ฑ์„ ๋‚ด๋ ค๋ฐ›๋Š” ๊ธฐ๊ธฐ์— ๋งž๋Š” ํŒŒ์ผ๋งŒ ํฌํ•จํ•˜๋ฏ€๋กœ ์•ฑ์˜ ํฌ๊ธฐ๊ฐ€ ์ค„์–ด๋“œ๋Š” ํšจ๊ณผ๊ฐ€ ์žˆ๋‹ค. 2022. 12. 9.
[์•ˆ๋“œ๋กœ์ด๋“œ] Android ์ง„๋™/mp3ํŒŒ์ผ ๋„ฃ๊ธฐ ํ•ด๋‹น ๊ธ€์€ 2018๋…„ 12์›” 8์ผ์— ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์ง„๋™๊ณผ ์‚ฌ์šด๋“œ๊ฐ€ ์šธ๋ฆฌ๋Š” ์•ˆ๋“œ๋กœ์ด๋“œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ๋‹ค. xml ํ˜•์‹์€ ์‰ฝ๊ฒŒ RelativeLayout ์œผ๋กœ ๋งŒ๋“ค์ž. 1. ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋ฒ„ํŠผ ๋งŒ๋“ค๊ธฐ res > layout > activity_main.xml โ€‹ 2. Manifest file์— ์ง„๋™ permission์„ ๊ผญ! ์ถ”๊ฐ€ํ•œ๋‹ค. ์Œ์•…์„ ์œ„ํ•œ permission์€ ํ•„์š” ์—†๋‹ค. ๊ถŒํ•œ์€ ๋ฐ–์—์„œ! ๋„ฃ์–ด ์ค€๋‹ค. (์•„๋ž˜ manifest file ์ฐธ๊ณ ) โ€‹ 3. MainActivity.java package shin.kr.myapplication; import android.content.Context; import android.media.MediaPlayer; import andro.. 2022. 5. 16.
[Android] Error while waiting for device: The emulator process for AVD Pixel_4_API_30 has terminated. Error while waiting for device: The emulator process for AVD Pixel_4_API_30 has terminated. ๋ถˆ์นœ์ ˆํ•œ ์—๋Ÿฌ ๋ฉ”์„ธ์ง€... ์™œ ์ข…๋ฃŒ๊ฐ€ ๋๋Š”์ง€ ์ด์œ ๋ฅผ ์•Œ๋ ค ์ฃผ์…”์•ผ ํ•  ๊ฒƒ ์•„๋‹Œ๊ฐ€์š”. ์ƒ๊ฐํ–ˆ์ง€๋งŒ. ๋ชจ๋ฅผ ๋•Œ๋Š” ์—ญ์‹œ ๊ตฌ๊ธ€๋ง์„ ํ•˜์ž. ๋ฌธ์ œ ์›์ธ : ๋“œ๋ผ์ด๋ธŒ ์šฉ๋Ÿ‰์ด ๊ฝ‰ ์ฐจ์„œ ์ƒ๊ธด ๋ฌธ์ œ์˜€๋‹ค. ์ž์ฃผ ํ™•์ธํ•˜๊ณ  ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์• ๋ฎฌ๋ ˆ์ดํ„ฐ๋Š” ์ง€์›Œ ์ค€๋‹ค๊ณ  ํ–ˆ๋Š”๋ฐ 2๋…„๋™์•ˆ ์‹œ๋‹ฌ๋ฆฐ ์ปดํ“จํ„ฐ๋Š” ๊ทธ ์™ธ์—๋„ ์—ฌ๋Ÿฌ ํŒŒ์ผ๋“ค์„ ๋‹ด๊ณ  ์žˆ์—ˆ๋‚˜ ๋ณด๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• : ํœด์ง€ํ†ต์— ์žˆ๋Š” ๋ถˆํ•„์š”ํ•œ ํŒŒ์ผ์„ ์ œ๊ฑฐํ•˜๊ณ . ์•„๋ž˜ ๋งํฌ์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์• ๋ฎฌ๋ ˆ์ดํ„ฐ๋“ค๋„ ์ง€์›Œ ์คฌ๋‹ค. C:\Users\์‚ฌ์šฉ์ž๊ณ„์ •\.android\avd (๋‚ด ๊ฒฝ์šฐ๋Š” ์ด ๊ฒฝ๋กœ์— avd ํด๋”๊ฐ€ ์œ„์น˜ํ•ด ์žˆ์—ˆ์Œ) ๊ธ‰ํ•œ๋Œ€๋กœ.. 2022. 3. 3.
[Android] INSTALL_PARSE_FAILED_MANIFEST_MALFORMED in Android12 ๊ธฐ์กด ์žˆ๋˜ ํ”„๋กœ์ ํŠธ๋ฅผ Android12 (API Level 31) ํ™˜๊ฒฝ์—์„œ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๋ ค๊ณ  ํ•˜๋‹ˆ ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฉ”์„ธ์ง€๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. [ Error Message ] Installation did not succeed. The application could not be installed: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED Error: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED Android12 ๋ฅผ ํƒ€๊ฒŸํŒ…ํ•˜์—ฌ ํ…Œ์ŠคํŠธ ํ•  ๋•Œ ์ฒดํฌํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์€ ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ, ํ•˜๋‚˜๋Š” build.gradle (:app) ํ™•์ธ ๊ทธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” AndroidManifest.xml ํ™•์ธ์ด๋‹ค. โ‘  build.gradle (:app) ์—์„œ๋Š” compileSdkVer.. 2022. 2. 9.
[์•ˆ๋“œ๋กœ์ด๋“œ] ๋Ÿฐํƒ€์ž„์— ๊ถŒํ•œ ์ฒดํฌํ•˜๋Š” ๋ฐฉ๋ฒ• ๋‘ ๊ฐ€์ง€ ์ƒ˜ํ”Œ ์ฝ”๋“œ๊ฐ€ ์žˆ๋‹ค. Case 1. ํ•˜๋‚˜์˜ ๊ถŒํ•œ๋งŒ ์š”์ฒญํ•˜๋Š” ์ผ€์ด์Šค Case 2. ๋‘ ๊ฐ€์ง€ ์ด์ƒ์˜ ๊ถŒํ•œ์„ ์š”์ฒญํ•˜๋Š” ์ผ€์ด์Šค Case 1. ํ•˜๋‚˜์˜ ๊ถŒํ•œ๋งŒ ์š”์ฒญํ•˜๋Š” ์ผ€์ด์Šค ๋™์ž‘ ์˜ˆ์‹œ Case 1. ํ•˜๋‚˜์˜ ๊ถŒํ•œ๋งŒ ์š”์ฒญํ•˜๋Š” ์ผ€์ด์Šค ์ฝ”๋“œ ์ด ๋ถ€๋ถ„๋งŒ ์ถ”๊ฐ€ํ•ด ์ค€ ๊ฒƒ AndroidManifest.xml MainActivity.java package com.devshin93.runtimepermission; import android.Manifest; import android.content.DialogInterface; import android.content.Intent; import android.content.pm.PackageManager; import android.net.Uri; import androi.. 2022. 1. 5.
[์•ˆ๋“œ๋กœ์ด๋“œ] ๋‚จํ•œํ…Œ ๋‚ด ํ”„๋กœ์ ํŠธ๋ฅผ ๋„˜๊ธธ ๋•Œ ์–ด๋–ค ํด๋”/ํŒŒ์ผ์„ ์ง€์šฐ๊ณ  ์ค„ ๊ฒƒ์ธ๊ฐ€. ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ์•ˆ๋“œ๋กœ์ด๋“œ ํ”„๋กœ์ ํŠธ ํด๋”์˜ ์šฉ๋Ÿ‰์„ ์ค„์ผ ์ˆ˜ ์žˆ๋Š”๊ฐ€. ์–ด์ œ๊นŒ์ง€ ๋‚˜ํ˜์„ ์‰ฌ์—ˆ๋”๋‹ˆ ์•„์ง ์ •์‹ ๋จธ๋ฆฌ๊ฐ€ ๋Œ์•„์˜ค์ง€ ์•Š์•˜๋‹ค. ํ”ผ๊ณคํ•˜๋‹ค... ์ œ๋ชฉ์„ ๋ญ๋ผ ๋‹ฌ์•„์•ผ ํ•  ์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค. SampleProject ์ด๋ผ๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž. SampleProject ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ํด๋” ๊ตฌ์„ฑ์ด ๋˜๋Š”๋ฐ, After ๋กœ ๋งŒ๋“ค์–ด์„œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ ์ „๋‹ฌํ•˜์ž~~~ โ˜… After๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•ด๋‹น ํ”„๋กœ์ ํŠธ๋ฅผ ์ข…๋ฃŒํ•ด์•ผ ํ•จ! โ˜… Before ์ƒํƒœ์—์„œ ์žˆ๋Š” ํด๋”/ํŒŒ์ผ๋“ค์€ ์กด์žฌํ•œ๋‹ค๋ฉด ์ œ๊ฑฐ๊ฐ€ ๊ฐ€๋Šฅํ•œ ๊ฒƒ์ž„.. Before ์ƒํƒœ์—์„œ ์—†๋Š”๋ฐ? (์‹๊ฒ) ํ•  ํ•„์š”๋Š” ์—†๋‹ค. ๊ฑ After ์ƒํƒœ๋กœ ๋งŒ๋“ค๋ฉด ๋จ~! SampleProject ใ„ด .gradle : .gradle์ด ํด๋”๋Š” ๋„๊ตฌ Gradle์„ ๋นŒ๋“œ ๊ตฌ์„ฑ ํด๋”, ๋นŒ๋“œ ์บ์‹œ ์ •๋ณด๊ฐ€ ์ผ๋ถ€ ํ•ญ๋ชฉ์„ ์ €์žฅํ•  ๊ฒƒ์ด๋‹ค. (์ œ๊ฑฐ ๊ฐ€๋Šฅ) ใ„ด ... 2021. 12. 28.
[Android Studio] Run/Debug Configurations no module Android Studio Run/Debug Configurations ์ธ ๊ฒฝ์šฐ, ๋ง์น˜ ๋ชจ์–‘์˜ Build ์˜†์— Add Configurations... ๊ฐ€ ์žˆ๋Š”๋ฐ, ํด๋ฆญํ•˜๋ฉด Run/Debug Configurations ์ฐฝ์ด ๋œฌ๋‹ค. ์ด ์ฐฝ ์™ผ์ชฝ ์ƒ๋‹จ์—์„œ + ๋ฅผ ๋ˆŒ๋Ÿฌ Android App ์— ์ƒˆ๋กœ์šด conf ๋ฅผ ์ถ”๊ฐ€ํ•ด ์ฃผ๋Š” ์„ค์ •์„ ํ•˜๋ฉด ๋œ๋‹ค~ ํ•˜๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. ์ด ๊ฒฝ์šฐ, Module ์— ๋‚ด๊ฐ€ ์‹คํ–‰ํ•  ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ด๋ฆ„.app ์ด ๋œจ๋Š” ๊ฒŒ ๋งž๋Š”๋ฐ. ๋‚˜๋Š” ์—ฌ๊ธฐ์— ๋Œ€์ถฉ ์ด๋Ÿฐ ๊ฒฝ์šฐ์˜€์Œ.. ๋กœ ๋œจ๋Š” ์ผ€์ด์Šค... ๋‚˜์˜ ๊ฒฝ์šฐ์—๋Š”, ๋‹ค๋ฅธ ์‚ฌ๋žŒ์œผ๋กœ๋ถ€ํ„ฐ ์•ฑ ํŒจํ‚ค์ง€๊ฐ€ ๋„˜์–ด ์˜ฌ ๋•Œ settings.gradle ์ด ์—†์–ด์„œ ์ƒ๊ธด ๋ฌธ์ œ์˜€๋‹ค. ๋‹ค๋ฅธ ํŒจํ‚ค์ง€์™€ ๋น„๊ตํ•˜๋ฉฐ settings.gradle ์„ ๋„ฃ์–ด ์ฃผ์ž. (์•ฑ์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•?.. 2021. 12. 28.
[์•ˆ๋“œ๋กœ์ด๋“œ] ์˜ค๋ฅ˜ ํ•ด๊ฒฐ The minCompileSdk (31) specified in adependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) ๊ทธ๋ฆฌ๊ณ  ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์‹ค์Šต ์˜ค๋ฅ˜ ๋‚ด์šฉ : One or more issues found when checking AAR metadata values: The minCompileSdk (31) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-27). Dependency: androidx.appcompat:appcompat:1.4.0. AAR metadata file: C:\Users\shin\.gradle\caches\transforms-3\๋ญ”๊ฐ€์— ๋Œ€ํ•œ ํ•ด์‹œ๊ฐ’ ๊ฐ™์Œ... ์•ฑ ์•„์ด๋””์— ๋Œ€ํ•œ ํ•ด์‹œ๊ฐ’์ธ๊ฐ€?\t.. 2021. 11. 29.
[์•ˆ๋“œ๋กœ์ด๋“œ] ๊ธ€์ž ์ƒ‰ ๋ฐ”๊พธ๊ธฐ - SpannableString, SpannableStringBuilder build.gradle (:app) plugins { id 'com.android.application' } android { compileSdk 30 defaultConfig { applicationId "com.devshin93.spannabletest" minSdk 25 targetSdk 30 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rule.. 2021. 11. 26.
๋ฐ˜์‘ํ˜•