본문 바로가기

프로그래밍/Android Studio 설정

[NDK] External tool javah 스크립트 만들기 많은 블로그에서 javah 생성 스크립트를 만들때 parameter 필드를 -classpath $Classpath$ -v -jni $FileClass$ 로 지정하는 것을 봤다. jni용 java header를 생성하는 명령어는 javah -jni [경로] [class이름] 이렇게 구성된다. 여기서 [경로]가 Android studio의 Tool-External Tools의 Parameters에 해당된다.그럼 알아야 할 것은 1. class파일이 어디에 생성되는지2. class파일의 루트는 어딘지(패키지명을 포함하는 마지막 위치) 나의 경우에는 다음과 같이 지정해 줬다. -classpath $ModuleFileDir$\build\intermediates\classes\debug -v -jni $FileCl.. 더보기
[NDK] javah class not found 문제native 예약어로 선언된 함수를 구현하기 위해 header와 c/cpp 파일을 생성할 때 javah가 동작하지 않음 D:\world\Projects\ToyJNI>javah -classpath %ANDROID_HOME%\platforms\android-23\androijar; com.sun.toy.jni.NativeMethodError: Could not find class file for 'com.sun.toy.jni.NativeMethod'. 위의 오류가 발생.발생원인 : class 파일의 경로가 잘못되었다. 수정 1차 : D:\world\Projects\ToyJNI\app\build\intermediates\classes\debug\com\sun\toy\jni>javah -jni NativeM.. 더보기
[gradle] dex size limit 문제 규모가 큰(본 프로젝트 + 참조 라이브러리) 프로젝트에서는 빌드가 안되는 문제 관련 android 글https://developer.android.com/tools/building/multidex.html dex의 정의에 관한 설명http://stackoverflow.com/questions/24224186/what-is-dex-in-gradle dex라는건 android를 빌드할 때, 이 정보를 class파일로 가지고 있는것이 아니라 .dex로 그 안에 바이트 정보로 보관하고 있다. 여기에는 클래스, 함수 등의 이름이 정의되어 있다. 문제는 초기 안드로이드는 2^16 개의 dex index 맵을 생성해 놓았다. 그렇기 때문에 build 시 dex의 index가 2^16 개가 초과해 버리면 indexou.. 더보기
[gradle] google play service 등 메소드 수가 많은 라이브러리 참조시 오류 android studio build를 하면 아래 문구와 함께 run이 되지 않는다. AGPBI: {"kind":"SIMPLE","text":"java.lang.OutOfMemoryError: GC overhead limit exceeded","position":{},"original":"java.lang.OutOfMemoryError: GC overhead limit exceeded"}... Error:Execution failed for task ':dexDebug'.> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Jav.. 더보기