일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- studio
- viewpager
- 유튜브
- 웹뷰
- 깃헙
- Gradle
- ADB
- 레트로핏
- 안드로이드 스튜디오
- 안스
- 스튜디오
- image
- 코틀린
- dart
- 코루틴
- error
- coroutine
- 안드로이드스튜디오
- Retrofit
- 안드로이드
- Github
- 에러
- MVVM
- GIT
- RecyclerView
- build
- WebView
- 의존성주입
- Kotlin
- Android
- Today
- Total
목록Android (33)
코딩하는 일용직 노동자
프로젝트를 빌드해서 실행한 후 다시 한번 빌드 후 실행할때부터 java.lang.SecurityException: Writable dex file 오류가 발생했습니다.java.lang.SecurityException: Writable dex file '/data/data/com.amazon.styledictionaryexample/code_cache/.overlay/base.apk/classes2.dex' is not allowed. 이럴땐 당황하지 말고 아래처럼 Application onCreate()에 코드를 추가해주면 됩니다.import android.app.Applicationimport java.io.Fileclass App: Application() { override fun onCreat..
1. 프로젝트의 보기방식을 모든 파일이 다 보이는 Project로 변경하면 .idea 폴더가 보입니다. 만약 보이지 않는다면 탐색기나 파인더를 이용해도 됩니다. 해당 폴더 아래에 libraries 폴더가 있고 그 안을 보면 dependency 관련 xml 파일이 잔뜩 있습니다. 해당 파일을 모조리 삭제해줍니다. 2. android studio 에서 메뉴 -> File -> Invalidate Cache / Restart.. 를 선택하고, android studio 를 다시 실행합니다. 3. android studio 가 다시 실행되면 메뉴 -> Build -> Rebuild project 를 눌러서 프로젝트를 다시 빌드합니다. 요렇게 실행하면 import 에 cannot resolve 오류가 발생하지 않..
기본적인 Compose로 구현하는 화면은 상단에 statusBar가 있고 아래에 navigationBar가 있는 형태입니다. modifier에 statusBarsPadding() navigationBarsPadding()를 추가해서 상단과 하단의 영역을 제외한 나머지 영역을 사용하도록 합니다. 하지만 요즘은 이 영역을 모두 사용해서 더 이쁘게 앱을 만드는 추세입니다. Jetpack Compose에서 전체화면을 사용해 컨텐츠를 표시하는 방법을 알아보겠습니다. 코드를 통해 확인해봅시다. @SuppressLint("UnusedMaterial3ScaffoldPaddingParameter") @Composable fun MyScreen() { Scaffold { Column( modifier = Modifier ..
안드로이드 앱을 설치하거나 작업할때 adb 명령어를 사용할 경우가 많습니다.맥북을 새로 구입했거나 초기화를 한 후 안드로이드 개발툴을 설치하고 adb 명령어를 입력하니zsh: command not found: adb 이렇게 표시되었습니다.안드로이드 환경변수가 제대로 설정되지 않은것입니다.adb 명령어를 사용할 수 있도록 안드로이드 sdk 경로 설정이 필요합니다.당황하지 않고 아래처럼 입력해줍니다. zshrc에서 안드로이드 adb명령어가 안될 때의 예시입니다.만약 bash인 경우 zshrc -> bash_profile 로 변경하시면 됩니다.1. 우선 터미널에서vi ~/.zshrc 입력합니다. 2. vi 모드에서 아래 내용을 입력합니다.우선 편집을 하기 위해 i 를 눌러줍니다.그리고 방향키를 이용해 가장..
구글로그인 구현을 할때 Firebase 콘솔에서 프로젝트에 디지털지문(FingerPrint)를 추가하는 경우를 위해 SHA1키를 알아내야 했습니다. AndroidStudio 우측에서 Gradle을 눌러 Tasks>Android>아래에 있는 signingReport를 실행시킵니다. 보통은 이런경우에 sha1키를 알아낼 수 있습니다. 이때 Tasks 메뉴가 보이지 않는다면 위에 Task list not Built...을 누른 후 설정창에서 Do not build Gradle task list during Gradle sync. 를 체크해제 한 후 sync 를 누르면 Tasks 메뉴가 보입니다. 다만 저는 어찌된 영문인지 계속해서 에러가 발생했습니다. 이럴경우 다른 방법으로 SHA1키를 알아낼 수 있습니다. ..
안드로이드와 iOS를 함께 개발할 수 있는 새로운 플랫폼이 등장합니다. React Native 와 Flutter 가 두 OS의 앱을 모두 만들 수 있는 플랫폼으로 많이 쓰이고 있는데 이제 새로운 선택지가 생기는 것입니다. 새로운 플랫폼의 이름은 Kotlin Multiplatform Mobile(https://blog.jetbrains.com/ko/kotlin/2022/09/join-the-kotlin-multiplatform-mobile-content-creators/) 입니다. IntelliJ 를 만든 IDE전문 기업 젯브레인(JetBrains)에서 만드는 플랫폼입니다. Flutter의 경우 Dart라는 생소한 언어를 새로 배워서 작업해야 한다는 단점이 있었는데 KMM은 Kotlin 을 개발언어로 사용..
안드로이드 네이버 아이디 로그인을 구현해보겠습니다. 우선 네이버 개발자센터에서 앱을 추가해줍니다. 앱의 이름과 패키지명, URL등을 등록하면 아래의 정보들을 이용할 수 있습니다. OAUTH_CLIENT_ID: 애플리케이션 등록 후 발급받은 클라이언트 아이디 OAUTH_CLIENT_SECRET: 애플리케이션 등록 후 발급받은 클라이언트 시크릿 OAUTH_CLIENT_NAME: 네이버 앱의 로그인 화면에 표시할 애플리케이션 이름. 모바일 웹의 로그인 화면을 사용할 때는 서버에 저장된 애플리케이션 이름이 표시됩니다. 적용할 안드로이드 프로젝트의 gradle에 네이버 아이디 로그인 라이브러리를 추가해줍니다. implementation 'com.navercorp.nid:oauth:5.1.1' // jdk 11 i..
#의존성과 의존성주입(Dependency Injection, DI)이란? class Animal 이 있고, class Cat이 있습니다. 그리고 Cat 에서 Animal 객체를 생성했습니다. class Animal { ... } class Cat { val animal = Animal() } 코드에서처럼 Cat 이 Animal을 멤버로 갖고 있으므로 Cat 은 Animal에 강한 의존성을 가진 관계가 됩니다. class Cat(private val animal: Animal) { ... } fun main() { val animal = Animal() val cat = Cat(animal) } 이번에는 생성자를 통해 Animal객체를 주입해주었습니다. 이로써 클래스간의 관계를 더 약하게 만들 수 있습니다..
아주 간편안 딥링크 테스트 방법입니다. 테스트할 기기의 브라우저로 아래의 url을 들어가서 딥링크를 입력해주면 됩니다. https://halgatewood.com/deeplink/ Deep Link Testing Tool - Mobile App Development Tools A deep link is a URL that links to content "deep" in your site structure. You may have a product you are trying to sell, or a video series you are trying to promote. With a deep link you can have another app link directly to that piece of cont..
아주 기초적인 Retrofit2 사용법을 https://jsonplaceholder.typicode.com/posts 를 이용해 테스트해보는 방법을 알아보겠습니다. #기본 셋팅 Retrofit2를 사용하기 위해 gradle에 의존성 주입을 해줍니다. Manifest 파일에 인터넷 퍼미션을 추가해줍니다. // 의존성 추가 implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:converter-gson:2.9.0' Manifest파일에 네트워크 기능을 이용하기 위한 퍼미션을 추가해줍니다. #RetrofitClient.kt BaseUrl 과 json 처리를 위한 GsonConverterFactor..