일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 2022 플러터 설치
- android retrofit login
- 멤버변수
- 안드로이드 유닛 테스트 예시
- 서비스 vs 쓰레드
- jvm이란
- 스택 큐 차이
- 큐 자바 코드
- 안드로이드 os 구조
- 안드로이드 레트로핏 사용법
- 안드로이드 라이선스 종류
- 안드로이드 라이선스
- 안드로이드 유닛테스트란
- ANR이란
- 플러터 설치 2022
- 자바 다형성
- 스택 자바 코드
- rxjava disposable
- 클래스
- Rxjava Observable
- android ar 개발
- jvm 작동 원리
- rxjava hot observable
- 안드로이드 레트로핏 crud
- ar vr 차이
- 객체
- rxjava cold observable
- 2022 플러터 안드로이드 스튜디오
- 서비스 쓰레드 차이
- 안드로이드 유닛 테스트
- Today
- Total
목록Android (402)
나만을 위한 블로그
안드로이드 앱에서 엑셀 파일을 만들고 SD 카드에 저장시키는 역할을 하는 POI 모듈이란 게 있다. 이걸 설치하다가 3.1 버전과 4.x 버전을 같이 깔아버려서 아래의 에러가 떴다. Duplicate class org.apache.poi.EmptyFileException found in modules 그러고는 앱 빌드도 안됐다. 순간 ㅈ됨을 감지하고 얼른 복구를 시도했다. 30분을 삽질한 결과 앱은 다시 정상적으로 빌드됐다. 나중에도 이런 일이 있을 것 같아서 내가 한 짓거리들을 기록해둔다. 0. 먼저 진정부터 한다. 급하게 마음 먹는다고 아무것도 해결되지 않는다. 1. File > Project Structure > Modules 탭 클릭 후 모듈들 삭제 : 경고창이 하나 나오는데 정말 지울거냐는 내용..
보호되어 있는 글입니다.
이 에러는 텍스트뷰에 setText()할 때 setText()의 인자를 정수형으로 넣어서 생기는 에러다. 보통 어댑터 클래스 안의 onBindViewHolder() 내부가 에러 발생 위치일 텐데, 정수형 값을 String으로 바꿔주는 것으로 간단하게 해결된다. String으로 바꾸려면 String aaa = String.valueOf(item.getXXX()); 로 받아오는 데이터를 String으로 바꾼 뒤 바로 밑의 줄에 holder.텍스트뷰.setText(aaa); 식으로 코드를 써주면 된다. String aaa = String.valueOf(item.getIntData()); holder.텍스트뷰.setText(aaa); getIntData()의 getIntData 부분은 자신의 DTO 클래스 안에..
※ 아래 예제는 갤럭시 S8+에서 정상 작동을 확인했지만 상위 핸드폰에서 작동하는지는 확인하지 않았다 XML 파일 자바 파일, 액티비티 자바 파일 1개 + 클래스 파일 4개다 액티비티 파일 먼저 올림 import android.app.Activity; import android.app.ActivityManager; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.os.Environment; import android.os.Ha..
※ 아래 코드는 갤럭시 S8+에서 정상 동작을 확인했지만 그 상위 단계 핸드폰에선 확인하지 않은 코드다 DrawArActivity.java에서 AR core로 선들을 그린 다음 설정 > 화면 캡쳐 버튼을 눌러, 해당 화면을 캡쳐하는 기능을 구현했다. 국내 사이트 중 하나에서 사진을 저장하는 코드를 가져왔고, 스택오버플로우세서 GLSurfaceView의 화면을 캡쳐하는 코드를 가져와 합쳤다. http://blog.naver.com/PostView.nhn?blogId=miraclehwan&logNo=220611579792&redirect=Dlog&widgetTypeCall=true 화면 캡쳐 후 갤러리 저장이번 2주차 과제 중 제일 삽질을 많이 했던 부분이다....(삽질한 시간만 쳐도 48시간은 넘을듯.....

이 에러는 Google Vision API 사용 시 나타나는 에러다. 이 에러 문장을 번역기로 돌리면 "이 Android 클라이언트 애플리케이션 의 요청이 차단되었습니다."라는 뜻으로 번역된다. 그리고 스택오버플로우의 GoogleCloudPlatform/cloud-vision의 Issues 탭 내용 중 Cloud Vision API request fails if you try to restict API Key usage to a specific Android App #90이라는 Closed된 이슈가 있다. 이 이슈에 SMH17이란 유저가 이런 글을 남겼다. - If you try to limit API key usage to a specific Android App, requests fails despi..

앱을 쓰다 보면 굳이 위에 있는 검색 버튼을 누르지 않아도 되도록 설정된 키보드가 올라와서 검색하기 편했던 적이 있을 것이다. 이 글에서는 돋보기 버튼이 있는 키보드 자판이 올라오게 하는 예제의 소스코드를 설명하겠다. 먼저 이 예제를 빌드하면 아래처럼 작동한다. 보통 키보드 자판을 보면 아래로 한 칸 띄워주는 버튼이 있는데, 예제를 보면 그 위치에 돋보기 버튼이 대신 존재하는 걸 볼 수 있다. 긴 말 필요없이 xml과 자바 코드부터 보자. 특이점이라면 editText의 속성 중 inputType과 imeOptions 2개다. imeOptions 속성은 actionSearch를 지정해야 돋보기 버튼이 생기고, inputType을 text로 해줘야 이 돋보기 버튼을 활용할 수 있다. 아래는 이론적인 내용이니..

※ 20.06.24에 에러 없이 작동하는 걸 확인한 후 올리는 코드임 1. 매니페스트에 권한 설정 2. 앱 수준 gradle에 의존성 추가 implementation 'com.github.bootpay:client_android_java:3.2.47' 3. 프로젝트 수준 gradle에 의존성과 리포지토리 추가 dependencies { classpath 'com.android.tools.build:gradle:3.6.3' classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'

※ 이 글은 개인 서버에 파일을 업로드한 후 작동시키는 예제다. 개인 서버에 파일을 업로드하지 않고서는 시도해보지 않아서 되는지 안되는지 모른다. 업데이트 내역) 21.10.16 - daum.html의 태그 밑 HELLO DAUM 글자를 지웠습니다. 바로 아래에 있는 파일을 다운로드받으시면 되며, 만약 해당 파일이 작동하지 않을 경우 더 밑에 있는 daum.html 파일을 다운받아 사용해 주세요. 예제를 찾으면 좀 나오긴 하는데 실행하면 무슨 팝업을 차단해제하라고 한다. 기본 브라우저가 크롬이라 크롬에 들어가서 팝업 해제를 취소했는데도 계속 나왔다. 그래서 여기저기서 검색하다 하나 발견해서 기록용으로 쓴다. 그 전에 이 파일을 다운받는다. 그리고 다음 주소 API를 넣을 프로젝트에 assets 폴더를 하..
아래의 클래스를 만든다. public class RecyclerViewDecoration extends RecyclerView.ItemDecoration { private final int divWidth; public RecyclerViewDecoration(int divWidth) { this.divWidth = divWidth; } @Override public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { super.getItemOffsets(outRect, view, parent, state); outRect.right = divWidth; } } 만약 위아래로 간격이 필요하..