안녕하세요. 오늘은 오픈소스 안드로이드 화면 미러링 프로그램인 scrcpy의 2.0 버전이 출시 소식을 들고 왔습니다. 기존 버전 사용법에 대해서는 제가 예전에 포스팅한 내용을 참고하시면 될 거 같습니다. 안드로이드 화면 미러링 프로그램 추천 (feat. SCRCPY) 오늘은 안드로이드폰 화면 미러링 프로그램을 하나 소개하고자 합니다. (오픈소스 : 아파치 라이선스 2.0) GitHub - Genymobile/scrcpy: Display and control your Android device Display and control your Android device. Contrib error-storage.tistory.com 2.0 버전에서 가장 크게 바뀐 부분은 오디오 미러링이 가능해진 점인데요. (참..
문제 발생 dart 언어에서는 jsonEncode 함수를 사용하여 객체를 간단하게 JSON 문자열로 변환할 수 있습니다. Uncaught Error: Converting object to an encodable object failed: Instance of '{x}' 다만 사용하다 보면 위와 같은 에러가 발생하는 경우가 있는데요. (저 역시 최근에 겪음 ㅠ) 원인은 보통 두 가지입니다. 변환하고자 하는 객체에 toJson 구현 누락 json의 데이터 타입은 기본적으로 string, number, object, array, boolean, null이 있으며 그 외에 타입을 변환하려는 경우 그럼 아래에서는 이 두 가지 케이스를 어떻게 해결해야 하는지 알아보겠습니다. 문제 해결 1. 변환하고자 하는 객체에 ..
Infinity란? 오늘은 Dart 언어의 Infinity에 대해서 이야기해보려고 합니다. 일단 Dart 언어에서 Infinity의 정의에 대해 요즘 트렌드(?)에 맞춰서 ChatGPT에게 물어봤습니다. ChatGPT : Dart 언어에서 무한대(infinity)가 발생하는 경우는 일반적으로 부동 소수점 연산에서 발생합니다. 부동 소수점 연산은 정확한 계산을 보장하지 않기 때문에, 값이 너무 작거나 큰 경우 무한대로 처리됩니다. 실제로 Dart 언어 API Docs에 가봐도 infinity 상수가 아래와 같이 구현되어 있는 것을 볼 수 있는데요. dartpad에서 다음과 같은 코드로도 확인이 가능합니다. double x = 1.0 / 0.0; print(x); // Infinity double y = d..
문제 발생 최근 플러터 3.7이 나오면서 저 역시 버전 업그레이드를 하게 됐는데요. 플러터 버전 업그레이드는 PATH가 잡혀 있다면 즉시, 아니라면 플러터 설치 경로로 이동하셔서 아래 명령어를 치시면 됩니다. flutter upgrade 그런데 업그레이드가 정상적으로 수행되지 않고 다음과 같은 메시지가 떴습니다. 사실 메시지에 답이 있는데요. 메시지를 다시 한 번 확인해볼까요? Your flutter checkout has local changes that would be erased by upgrading. If you want to keep these changes, it is recommended that you stash them via "git stash" or else commit the ch..
상황 며칠 전부터 커맨드 명령어나 다른 툴에서는 git push/pull이 잘 되지만 안드로이드 스튜디오에서만 push/pull이 안 되고 계속 진행중으로 나오는 현상이 발생하였습니다. 해결 안드로이드 스튜디오 재부팅도 해보고 컴퓨터도 재부팅을 해봐도 해결이 되지 않아서 옆자리의 동료한테 넌지시 물어봤더니 쌓여있는 캐시가 문제일 수도 있다는 답변이 돌아왔습니다. 캐시가 문제인 경우 다음과 같은 방법으로 해결 가능합니다. 설정 경로 File > Invalidate Caches... 설정 방법 위 경로로 들어가면 다음과 같은 창이 뜹니다. - Clear file system cache and Local History - Clear VCS Log caches and indexes 둘 다 체크하고 [Invali..
상황 retrofit을 이용한 앱을 테스트하는 과정에서 발생하였습니다. 에러 메시지는 다음과 같습니다. Caused by: java.lang.IllegalArgumentException: class com.common.retrofit.data.RetrofitTest declares multiple JSON fields named test at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:172) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFa..
상황 github에서 가져온 프로젝트를 빌드할 때 다음과 같은 에러가 발생하였습니다. Caused by: com.android.builder.errors.EvalIssueException: Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8. You can try some of the following options: - changing the IDE settings. - changing the JAVA_HOME environment variable. - changing `org.gradle.java.home` in `gradle.properties`. at com.android.builder.errors.Issu..
문제 안드로이드 컴포즈의 Icon 함수를 사용하는데 빨간줄이 뜨고 마우스를 올리니 Overload resolution ambiguity. All these functions match. 메시지가 출력되었습니다. Overload resolution ambiguity. All these functions match. · public fun Icon(painter: Painter, contentDescription: String?, modifier: Modifier = ..., tint: Color = ...): Unit defined in androidx.compose.material · public fun Icon(painter: Painter, contentDescription: String?, modi..
오늘은 안드로이드폰 화면 미러링 프로그램을 하나 소개하고자 합니다. (오픈소스 : 아파치 라이선스 2.0) GitHub - Genymobile/scrcpy: Display and control your Android device Display and control your Android device. Contribute to Genymobile/scrcpy development by creating an account on GitHub. github.com 제가 소개하고자 하는 프로그램은 Genymobile의 scrcpy인데요. OS는 리눅스, 윈도우, 맥 전부 지원합니다. 윈도우 같은 경우 위 사이트에서 scrcpy-win64-{버전}.zip 파일을 받아서 압축을 풀어주어야 합니다. 그 외의 운영체제는..
상황 : retrofit으로 내부 개발 서버로 API를 호출한 상황에서 발생 오늘 안드로이드 retrofit을 사용하여 내부 개발 서버의 API를 호출하였는데 아래와 같은 에러가 발생하였습니다. java.net.UnknownServiceException: CLEARTEXT communication to {domain} not permitted by network security policy at okhttp3.internal.connection.RealConnection.connect(RealConnection.java:164) at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.java:224) at okhttp3.in..