본문 바로가기

나의 플랫폼/안드로이드

[Android] activity has been destroyed activity has been destroyed Fragment 이동을 위해, begintransaction commit을 진행 할때 위와 같은 이슈가 발생할 가능성이 있다. http://gogorchg.tistory.com/entry/Android-Can-not-perform-this-action-after-onSaveInstanceState위 사항과 비슷한 현상때문에 발생한 오류 인데요. 머 에러 문구도 간단하다."이미 종료된 activity이니 호출 따위 하지마!" 이다 ㅎ 그래서 아래와 같은 예외처리 함수를 만들었다. 1234567 public static boolean isActivityAvailable(Activity activity) { if (Build.VERSION.SDK_INT 더보기
[Android][Github] Create private project - 2 먼저, 이쪽 (http://gogorchg.tistory.com/entry/AndroidGithub-Create-private-project-1) 으로 들어가셔서SSH Key를 등록 하고 오세요!!! SSH Key 등록이 완료 되었으면 이제 소스 업로드를 해보자. Private Project 생성 및 업로드 ## Android Studio Setting 설정 1. Setting 창을 띄운다. 2. Version Control -> GitHub 탭 선택 아래 화면 같이 github Login 정보를 입력 하시고 Test 버튼을 누르세요. 테스트가 통과 되면 아래와 같이 결과 화면 나옵니다. 'Clone git repositories using ssh' 체크 박스에 체크를 꼭! 해주세요. 3. Project.. 더보기
[Android][Github] Create private project - 1 Github를 이용하여 소스관리를 할 때, public 형태는 그냥 repository를 만들어서 URL을 이용하면언제 어디서든지 Project 생성 및 clone이 가능하다. 하지만, private로 진행 할 떄는 ssh 인증을 통하여 해야만 한다.내가 테스트 해본 방법을 공유 하고자 한다. SSH Key 생성 및 등록 이미 git이 깔려 있다는 가정하에 진행 하며, OS는 Windows입니다. ## SSH Key 생성 : https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/ 1. Git Bash를 실행 2. ssh-keygen -t rsa -b 4096 -C "your_email@example... 더보기
[Android] 내가 생각 하는 VIPER Pattern http://bartysways.net/?p=690 VIPER는 아키텍처 디자인 패턴이다.위 그림의 형태를 가장 많이 봐 온 것 같다. VIPER에 대해 조금만 검색 하면 엄청나게 많은 글들을 볼 수가 있다.여기서는 내가 Android 아키텍처를 구성할 때 생각하는 VIPER 패턴 형태를 공유하고자 한다. ## VIPER : View, Interactor, Presenter, Entity, Router View : View(CustomView), Fragment Interactor : Realm, Retrofit등 Presenter : Listener, Callback, Protocol등 Entity : Models Router (Wireframe) : Activity (iOS는 ViewControlle.. 더보기
[Android] Can not perform this action after onSaveInstanceState Fragment를 이동할때 아래와 같은 illegalStateException이 발생할 때가 있다. Fatal Exception: java.lang.IllegalStateExceptionCan not perform this action after onSaveInstanceState 이건 테스트할때 잘 발생하지 않는 이슈라 그냥 넘기기 쉽지만,참고해서 코딩하는 것도 나쁘지 않아 보인다. 이건 Exception은 Activity에서 onSaveInstanceState 함수를 호출된 상태에서 commit 함수를 호출 했을때발생한다고 한다. 1. Activity1 onActivityCreated 에서 commit 호출2. Activity2 로 전환3. Activity1에서 onSaveInstanceState 호.. 더보기
[Android] FileProvider :: android.os.FileUriExposedException File 경로를 Uri로 변경하고자 할 경우 아래와 같이 이용한다. Uri.parse(File 경로) 앱 내부로 이용하는 것은 문제가 없지만,MediaPlayer나 Intent로써 다른 앱으로 값을 전달하고자 할 경우,아래와 같은 Exception이 발생한다. android.os.FileUriExposedException 이 Exception은build.gradle에 targetSdkVersion이 24 이상으로 설정 되어 있을 경우 발생 한다. 그 이유는 앱과 앱간의 파일 공유를 진행할 시, 보안이 강화 되었기 때문이다.이 문제를 해결하기 위해선 FileProvider를 이용하여 임시 권한을 할당해줘야 한다. 1. res/xml/provider_paths.xml xml을 통하여 권한을 주고자 하는 폴더.. 더보기
[Kotlin] execution failed for task app compiledebugaidl AIDL 파일은 Service와 이벤트 나 데이터를 교환하기 위해 정의하는 파일 입니다. 참고 : http://gogorchg.tistory.com/entry/Android-AIDL-%ED%8C%8C%EC%9D%BC-%EC%98%88%EC%A0%9C AIDL 파일을 사용하고자 할 때, 빌드 중에 아래 와 같은 에러가 보이기도 한다. execution failed for task app compiledebugaidl 아래는 StackOverFlow에 올라와 있는 참고 에러 입니다. Error:Execution failed for task ':library:compileReleaseAidl'. > java.lang.RuntimeException: com.android.ide.common.process.Pro.. 더보기
[Android] scrollview match_parent not working ScrollView 안에 있는 View에 match_parent를 줬는데도 높이가 변경이 되지 않는다. 위 소스를 보면 간단하다. NestedScrollView 안에 TextView가 들어 있다.layout_height 값이 match_parent로 되어 있지만, 아래와 같이 높이가 변경 되지 않았다. 이럴 경우 ScrollView에 속성 하나만 추가해주면 된다. android:fillViewport="true" 위 속성만 추가 해주면 된다.그럼 ScrollView 안에 있는 View를 Strech 해주는 역할을 합니다. 출처: https://stackoverflow.com/a/10211418 참고 하세요. 더보기