지식메모/안드로이드 Android
-
안드로이드 스튜디오 라이브러리 추가하기2016.06.03
-
Android Studio auto import2016.06.01
-
안드로이드 apk 쉽게 재서명 resign 하기2016.02.17
-
안드로이드 APK 재서명하기2015.09.22
안드로이드 스튜디오 서명된 apk 생성시 Error:(24) Error: "none" is not translated in "en" [MissingTranslation] 다국어 오류 해결
Android Studio 에서 서명된 apk를 생성하려고 했더니 이런 에러가 떴다.
Error:(24) Error: "none" is not translated in "en" [MissingTranslation]
(*어느 언어냐에 따라 "en" "vi" "th" 등등 다르게 나타남)
보니까 다국어에서 문제가 생겼는데 프로젝트는 이클립스에서는 문제가 없었던 거였다.
그래서 찾아보니 안드로이드 스튜디오에서는 string.xml 이 모두 같아야 한다고 한다.
즉 위 에러를 보면
<string name="none">none</string>
이 코드가 "vi"에서 번역되지 않았다고 뜬다. 베트남어에서 none 항목이 없다는 것이다.
현재 다국어 구조가
이렇게 한국,영어,대만,베트남 4개로 되어있는데
베트남의 string.xml 에만
<string name="none">none</string>
이 항목이 번역되지 않았다는 것이다.
이 문제를 해결하려면
values-vi 의 strings.xml 로 들어가
<string name="none">none</string>
이걸 추가해준 뒤 다시 서명된 apk를 생성하면 해결된다.
'지식메모 > 안드로이드 Android' 카테고리의 다른 글
안드로이드 'getDrawable(int)' is deprecated 수정하기 (0) | 2016.06.12 |
---|---|
안드로이드 스튜디오 apk versionCode 와 versionName 변경하기 (0) | 2016.06.09 |
안드로이드 스튜디오 라이브러리 추가하기 (0) | 2016.06.03 |
안드로이드 스튜디오 Error:java.lang.OutOfMemoryError: GC overhead limit exceeded 에러 해결법 (0) | 2016.06.03 |
Android Studio auto import (0) | 2016.06.01 |
안드로이드 스튜디오 라이브러리 추가하기
프로젝트 내에 libs 폴더를 만들고 안에 라이브러리 파일은 넣은 후 우클릭
Add as Library 클릭
나오는 창에서 app을 선택 후 ok 하면 추가된다.
'지식메모 > 안드로이드 Android' 카테고리의 다른 글
안드로이드 스튜디오 apk versionCode 와 versionName 변경하기 (0) | 2016.06.09 |
---|---|
안드로이드 스튜디오 서명된 apk 생성시 Error:(24) Error: "none" is not translated in "en" [MissingTranslation] 다국어 오류 해결 (0) | 2016.06.09 |
안드로이드 스튜디오 Error:java.lang.OutOfMemoryError: GC overhead limit exceeded 에러 해결법 (0) | 2016.06.03 |
Android Studio auto import (0) | 2016.06.01 |
안드로이드 apk 쉽게 재서명 resign 하기 (0) | 2016.02.17 |
이클립스에 있던 프로젝트를 import 해도 계속 에러에러에러...
결국 그냥 안드로이드 스튜디오에서 새 프로젝트만들고 거기다 붙여넣어 보는 식으로 어찌어찌 해결하다가 갑자기 왠 아웃오브메모리???
대략 이런 에러가 발생
Error:UNEXPECTED TOP-LEVEL ERROR:
Error:java.lang.OutOfMemoryError: GC overhead limit exceeded
:app:transformClassesWithDexForDebug FAILED
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_05\bin\java.exe'' finished with non-zero exit value 3
dexOptions { jumboMode true javaMaxHeapSize "4g" } |
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 | apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { applicationId "패키지네임" minSdkVersion 14 targetSdkVersion 23 versionCode 1 versionName "1.0" multiDexEnabled true } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } //dexOptions 추가 dexOptions { jumboMode true javaMaxHeapSize "4g" } } | cs |
물론 이게 100% 해결책이 아닐 수 있다. 언제나 그랬듯이 남의 해결책이 나의 해결책이 되진 않기 때문에..
여기까지 오기에 많은 에러가 있었는데 그 에러들이 어떻게 해결되었는지는 모르고 어찌어찌 넘어왔다.
그 에러들 해결방법도 다시 찾아봐야겠다.
'지식메모 > 안드로이드 Android' 카테고리의 다른 글
안드로이드 스튜디오 서명된 apk 생성시 Error:(24) Error: "none" is not translated in "en" [MissingTranslation] 다국어 오류 해결 (0) | 2016.06.09 |
---|---|
안드로이드 스튜디오 라이브러리 추가하기 (0) | 2016.06.03 |
Android Studio auto import (0) | 2016.06.01 |
안드로이드 apk 쉽게 재서명 resign 하기 (0) | 2016.02.17 |
안드로이드 Unable to execute dex: Multiple dex files define 에러 해결하기 (0) | 2016.02.15 |
Android Studio auto import
http://answerofgod.tistory.com/entry/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4-Auto-import
'지식메모 > 안드로이드 Android' 카테고리의 다른 글
안드로이드 스튜디오 라이브러리 추가하기 (0) | 2016.06.03 |
---|---|
안드로이드 스튜디오 Error:java.lang.OutOfMemoryError: GC overhead limit exceeded 에러 해결법 (0) | 2016.06.03 |
안드로이드 apk 쉽게 재서명 resign 하기 (0) | 2016.02.17 |
안드로이드 Unable to execute dex: Multiple dex files define 에러 해결하기 (0) | 2016.02.15 |
안드로이드 sdk 설치시 Download interrupted: peer not authenticated 문제 해결 (0) | 2015.12.15 |
안드로이드 apk 쉽게 재서명 resign 하기
사전환경셋팅이 되어있어야 한다.
java 와 Android sdk가 설치되어 있어야 하고 환경변수도 설정되어 있어야한다.
http://recorder.robotium.com/downloads/re-sign.jar
위 링크에서 re-sign.jar 파일을 받아서 실행한다.
그럼 아래와 같은 창이 뜨고 여기다 재서명할 apk를 끌어다 놓으면 된다.
이런 창이 뜬다면 zipalign 파일이 없다는 것이므로 해당파일을 ~~sdk/tools 폴더에 붙여넣어준다.
zipalign 파일은 sdk 가 설치된 폴더에 보면 build-tools 라는 폴더가 있는데
들어가서 아무 폴더에서 쉽게 찾아볼 수 있다.
재서명이 끝나면 아마 apk 명 끝에 -debug라고 붙은 apk가 생성되었을 것이다.
(또는 직접 정해준 파일명으로)
이 apk 를 사용하면 끝이다.
이렇게 간단한 방법이 있었다니..
'지식메모 > 안드로이드 Android' 카테고리의 다른 글
안드로이드 스튜디오 Error:java.lang.OutOfMemoryError: GC overhead limit exceeded 에러 해결법 (0) | 2016.06.03 |
---|---|
Android Studio auto import (0) | 2016.06.01 |
안드로이드 Unable to execute dex: Multiple dex files define 에러 해결하기 (0) | 2016.02.15 |
안드로이드 sdk 설치시 Download interrupted: peer not authenticated 문제 해결 (0) | 2015.12.15 |
안드로이드 APK 재서명하기 (0) | 2015.09.22 |
안드로이드 Unable to execute dex: Multiple dex files define 에러 해결하기
Android Run 시 아래와 같은 에러가 났을 경우
[2016-02-15 11:25:55 - Dex Loader] Unable to execute dex: Multiple dex files define
[2016-02-15 11:25:55 - Test] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define
android-support-v7-appcompat 프로젝트가 Library 에 추가 되었는지 확인해본다.
해당 프로젝트 우클릭 - Properties - Android 탭 하단에서 볼 수 있다.
Library 를 보면 android-support-v7-appcompat 프로젝트가 추가 되었는지 볼 수 있는데 필자의 경우 android-support-v7-appcompat 라이브러리가 사라져 있었다.
이런 경우 android-support-v7-appcompat 라이브러리 프로젝트를 따로 import 시켜주어야 한다.
이 프로젝트는 아마 처음 Android Project를 새로 생성할 때 OS 4.4.4 킷캣 이상 버전으로 생성하면 자동으로 생성되었던 라이브러리이다.
(android-support-v7-appcompat 이게 생성 안되게 프로젝트를 생성하는 방법이 있다곤 하는데 우선 급한 불 부터 꺼보겠다)
그런데 이게 가끔 지멋대로 프로젝트가 사라진다거나 이상하게 깨지는 경우가 많다.
그래서 이게 생성안되게 새 프로젝트 생성시 4.1.2로 만들곤 한다.
혹시 몰라 첨부..
android-support-v7-appcompat.zip
android-support-v7-appcompat를 import 하였다면 이제 작업하는 프로젝트에 추가해주어야 한다.
Add 버튼을 누르면 라이브러리 프로젝트 선택화면이 나온다.
android-support-v7-appcompat를 선택하고 ok를 누르면
초록색으로 체크표시가 되고 추가가 될 것이다. Apply를 눌러 적용시키고
이제 다시 한번 프로젝트를 Run 해본다.
그래도 안된다면 다음 링크를 참고해본다.
http://www.androidside.com/bbs/board.php?bo_table=B56&wr_id=27196
'지식메모 > 안드로이드 Android' 카테고리의 다른 글
Android Studio auto import (0) | 2016.06.01 |
---|---|
안드로이드 apk 쉽게 재서명 resign 하기 (0) | 2016.02.17 |
안드로이드 sdk 설치시 Download interrupted: peer not authenticated 문제 해결 (0) | 2015.12.15 |
안드로이드 APK 재서명하기 (0) | 2015.09.22 |
안드로이드 외부폰트 적용하기 (0) | 2015.09.02 |
안드로이드 sdk 설치시 Download interrupted: peer not authenticated 문제 해결
sdk 를 업데이트 하려는데 자꾸 로그에
Download interrupted: peer not authenticated
이런게 뜨면서 설치가 되지 않았다.
그래서 찾아보니 옵션을 수정해주어야 된다고 한다.
sdk 매니저 상단 Tools > Options 에 들어간다.
그리고 하단 others에
Force https;// 를 체크해준다.
Close 한뒤 설치를 다시 시도해본다.
설치가 진행된다!
'지식메모 > 안드로이드 Android' 카테고리의 다른 글
안드로이드 apk 쉽게 재서명 resign 하기 (0) | 2016.02.17 |
---|---|
안드로이드 Unable to execute dex: Multiple dex files define 에러 해결하기 (0) | 2016.02.15 |
안드로이드 APK 재서명하기 (0) | 2015.09.22 |
안드로이드 외부폰트 적용하기 (0) | 2015.09.02 |
안드로이드 xml 에러 error: Apostrophe not preceded by 해결 (0) | 2015.09.01 |
안드로이드 APK 재서명하기
이 방법을 시도해보기 전에 더 간단한 방법이 있으므로 시도해보길 추천함
http://yonoo88.tistory.com/808
이미 릴리즈 된 안드로이드 apk 를 내 개인 서명키로 바꾸는 방법
여기서는 이미 있는 debug.keystore 파일을 이용하여 해보았다.
우선 재서명할 apk를 준비한다.
압축프로그램이 있다면 우클릭을 하고 압축을 푼다. (ex. astro apk)
압축을 풀고 나서 해당 폴더에 들어가면 파일이 많이 있는데 여기서
META-INF 폴더를 삭제한다. 이 폴더에 서명관련한 파일들이 있기 때문이다.
삭제한 다음 다시 이 폴더를 압축하는데 꼭 폴더 내부로 들어가서 모든파일 선택 후 압축을 해야한다.!
그럼 압축파일이 생기는데 보기 편한 곳으로 이동시켜놓고
확장자를 ,apk로 바꿔준다.
그럼 위처럼 apk 로 변경된다 (기존 apk와 이름이 같아 resign으로 변경해주었다)
혹시 뒤에 확장자가 안보이면 폴더옵션에서
알려진 파일 형식의 파일 확장명 숨기기를 체크 해제 해준다.
그럼 cmd 창을 연다.
해당 폴더가 있는 경로로 진입한다. 여기서는 d:\astro 이다
그리고 서명할 키가 있어야 하는데 여기서는 debug.keystore를 이용하겠다.
이 키스토어는 C:\Users\Administrator\.android 폴더에 위치하고 있다.
그럼 이제 서명을 해줘야 하는데 명령어는 다음과 같다.
출처
http://developer.android.com/tools/publishing/app-signing.html
$ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1
-keystore my-release-key.keystore my_application.apk alias_name
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore [키스토어경로] [서명할apk경로] [키스토어별명]
여기서 jarsigner 경로가 환경변수에 등록되어 있어야한다.
하지만 자바를 처음 설치할 때
%JAVA_HOME%\jdk\bin
이런 식으로 환경변수를 등록해주므로 아마 이미 되었을 것이다.
기본 경로는 다음과 같다(64비트)
C:\Program Files\Java\jdk1.8.0_05\bin
이렇게 해주면 된다.
기본적으로 debug.keystore 는 다음과 같은 정보를 가지고 있다
키스토어 별명은 확인은
keytool -list -v -keystore [키스토어경로]
로 확인할 수 있다.
그럼 다음과 같이 입력 후
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore c:\.android\debug.keystore com.metago.resign.apk androiddebugkey
실행하면 암호를 치라고 나오는데 android 라고 써준다.
그럼 뭐가 좌르륵 나오면서 끝에 jar signed 라고 뜰 것이다.
이제 서명은 되었고 apk를 다시 재정렬?시켜줘야 한다.
그러기 위해서는
zipalign -v 4 your_project_name-unaligned.apk your_project_name.apk
zipalign -v 4 [서명한apk] [apk 새이름]
위 명령어를 실행해 줘야 하는데 zipalign 경로가 환경변수 Path에 추가 되어 있어야 한다.
Path 변수 값 예시C:\ProgramData\Oracle\Java\javapath;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;%JAVA_HOME%\bin;D:\backup\eclipse\adt-bundle-windows-x86_64-20140702\sdk\platform-tools;%ANDROID_HOME%\tools;%ANDROID_HOME%\build-tools\android-4.4W |
zipalign 은 sdk 폴더에 buiild-tools 에서 안드로이드 아무 버전이나 폴더에 들어가면 있다.
ex ) C:\adt-bundle-windows-x86_64-20140702\sdk\build-tools\android-4.4W
그래서
zipalign -v 4 com.metago.astro.resign.apk astro.apk
라고 실행해주면
아까보다 더 많은 좌르륵이 나오면서
Verification succesful
이라고 뜰 것이다.
해당 폴더에 가보면 apk 가 생성되어 있을 것이다.
확인을 해보고 싶다면
jarsigner -verify my_application.apk //간단히 서명확인할 때
jarsigner -verify -verbose -certs my_application.apk //서명 외 다른 정보도 자세히 확인할 때
다음과 같이 실행해준다.
원본 apk 파일인 com.metago.astro.apk 의 서명 정보 확인
jarsigner -verify -verbose -certs com.metago.astro.apk
debug.keystore 로 재서명한 astro.apk
jarsigner -verify -verbose -certs astro.apk
재서명한 astro.apk를 보면 Android Debug로 바뀐게 보인다.
그럼 재서명 완료!!
'지식메모 > 안드로이드 Android' 카테고리의 다른 글
안드로이드 Unable to execute dex: Multiple dex files define 에러 해결하기 (0) | 2016.02.15 |
---|---|
안드로이드 sdk 설치시 Download interrupted: peer not authenticated 문제 해결 (0) | 2015.12.15 |
안드로이드 외부폰트 적용하기 (0) | 2015.09.02 |
안드로이드 xml 에러 error: Apostrophe not preceded by 해결 (0) | 2015.09.01 |
안드로이드 시스템 언어 변경에 따라 앱에서도 자동으로 언어 변경하기 (4) | 2015.08.20 |