본문 바로가기

Android

--- decoder->decode returned false 문제 갤러리에서 사진을 가져오는데 몇개의 특정 파일이 열리지 않는다. (보이지 않는다) 디버깅해보니 BitmapFactory.decodeByteArray(test, 0, test.length); 이 null을 뱉는다. 그래서 Bitmap을 뿌릴 수 없게된것이다. 검색해보니 다른 블로그에서는 1. 이미지의 용량이 커서 메모리를 차지하게되어 Exception 발생 2. 이미지를 다 받기 전에 디코더를 닫아버려서 Exception 발생 되는것으로 말하는것 같다. 두번째는 모르겠고 첫번째에 무게를 두고자 한다. 특정 사진들만 보여주지 않는데 이미지를 로드할때 option에 1/10 으로 줄여도 나타나지 않는것이다. 소스를 마구잡이로 짜다보니 예전에 넣고 계속 안봤던 코드가 보였다. data.compress(Compr.. 더보기
java.lang.IllegalAccessException: access to class not allowed Exception error : java.lang.IllegalAccessException: access to class not allowed 가 걸렸다. 위치는Activity.Thread.performLaunchActivity(ActivityThread$ActivityClientRecord, intent) line : 1573 Intent 로 넘겨주면 다른 Activity에서 죽어버린다. Native Code와 함께 사용중이었으므로, native load 에서 문제가 있는줄알았다. 무려 1주일가량을 개 삽질을 했다. 프로젝트만 수십번 새로 열고 intent 전달 데이터도 다른걸루 바꿔보고native Code를 빼보기도 하고 NDK 및 SDK, Eclipse 까지 전부 다시 깔아보기까지 했다. 결론을 말.. 더보기
Android with OpenCV using NDK - (2) 주의. 본 내용은 예전버전으로 설치내용이 다소 변경될 수 있습니다. 다른블로그 가는것을 권장합니다^^ 버전마다 매우 상이한 내용이라 많은 어려움이 있음. 각 블로그 및 카페에서 소개하는내용은 환경을 그대로 맞춰야 대부분 되는것 같음. 최신버전으로 해봤는데... 구조가 너무 많이 바뀜........... 최근 Android SDK 가 20이 나왔고 Android-NDK 경우 r8 버전이. (r7버전과 사용에 있어서 문제가 없을듯하다.) OpenCV 가 가장 크게 문제가 되는것 같다. OpenCV경우 2.4.2 가 나왔고 /sdk/ /samples/ /doc/ /apk/ 으로 이루어졌다.......... sdk만 쓰면 될거 같은데 내부적으로 또다시 세분화 되었다........유유 경로 Path 지정하는것 조.. 더보기
super(Context), super.onCreate : 예약어 super와 Context C만 주로 하고 예전에 Java를 잠깐하고 거의 안쓰다가 무작정 Android 하려니까 이것저것 막히는 부분이 많다. 역시 기초없이 하기란 힘들구나 +_+;;; 예약어 super 에 대해 알아본다. 예약어 super의 형태 super.객체변수 하위 클래스에 의해 가려진 상위 클래스의 멤버변수나 메소드 접근 super.메소드이름(매개변수) 상위 클래스의 생성자를 호출하기 위해 사용 super(매개변수) 상위클래스의 생성자를 호출 오버라이딩 이전에 메소드의 상속과 오버라이딩(Overriding)에 개념이 잡혀야 한다. 오버로딩과 오버라이딩 : 객체지향 언어의 주요 개념은 다형성을 제공하기 위함이 가장 크다. 안드로이드에서 @Overriding 으로 사용 : 상속관계에 있는 상위 클래스와 하위 클래스에서 같은.. 더보기
안드로이드 Activity Intent Flag 안드로이드 알아두면 요긴한 FLAG_ACTIVITY 네 가지 [출처] 안드로이드 알아두면 요긴한 FLAG_ACTIVITY 네 가지|작성자 휴우 더보기
Android With OpenCV using NDK - (1) 주의. 본 내용은 예전버전으로 설치내용이 다소 변경될 수 있습니다. 다른블로그 가는것을 권장합니다^^ Android With OpenCV using NDK - (1) 일단 OpenCV 제외하고 NDK 부터 돌려보도록 한다. Android-NDK : 이것또한 안드로이드 사이트에서 제공한다. http://developer.android.com/tools/sdk/ndk/index.html Platform 에 맞는 것을 다운로드 하면 되게쪄~ cygwin : 리눅스 환경처럼 만들어서 make파일을 만드나... OpenCV-Android는 http://sourceforge.net/projects/opencvlibrary/files/opencv-android/ 에서 알아서 다운로드~ 보통 모든 중심은 cygwin .. 더보기
Re-installation failed due to different application signatures 안드로이드 개발중 다음과 같은 에러가 발생시 Re-installation failed due to different application signatures You must perform a full uninstall of the application. WARNING: This will remove the application data! Please execute 'adb uninstall com.android.project' in a shell. Launch canceled! 컴퓨터2대로 작업할때 동일명의 프로젝트로 돌리려고할때 일어나는듯하다; 기존의 어플리케이션과 충돌되서인지 지워주라는 메시지이다. 위의 설명대로 command 창에서 자신의 Android-sdk 폴더에서 Platform-tools 폴.. 더보기
[JNI] Android와의 JavaCV : Mat 구조체 넘김 JavaCV 에서 제공하는 Mat 구조체 (CV 시리즈에서 나온다) 를 이용하여 카메라값을 받고 카메라와의 실시간 영상일경우 해당클래스에 private Mat mYuv; private Mat mRgba; private Mat mGray; 와같이 선언후 surfaceChanged 메소드의 synchronized에서 mYuv = new Mat(getFrameHeight() , getFrameWidth(), CvType.CV_8UC1); 처럼 선언후 processFrame 메소드에서 native코드호출메소드(mGray.getNativeObjAddr(), mRgba.getNativeObjAddr(), 0); 처럼 getNativeObjAddr 을 이용한다. 이름에서 유추하듯이 Native Addr 즉 네이티브 .. 더보기
[JNI] JNI 형식 및 데이터 구조 Java Type Java Type Native Type Description boolean jboolean unsigned 8 bits byte jbyte signed 8 bits char jchar unsigned 16 bits short jshort signed 16 bits int jint signed 32 bits long jlong signed 64 bits float jfloat 32 bits double jdouble 64 bits void void N/A JNI Java 개체의 다른 종류에 해당 하는 참조 형식의 수를 포함 합니다 C에서 모든 jni 참조형식은 jobject 와 동일하게 정의 됩니다. typedef jobject jclass; 처럼 jvalue union 형식 인수 배열에.. 더보기
[JNI] GetByteArrayElements JNI사용시 배열을 받을때 GetByteArrayElements 을 사용한다. JNIEnv * (jni 환경에 대한 포인터) 가 파라메터인데 자바 가상머신 내에 있는 현재 스레드에 대한 핸들이다. JNIEnv 유형은 모든 JNI 함수 포인터를 저장하는 구조에 대한 포인터를 설정합니다. 그것은 다음과 같이 정의됩니다. typedef const struct JNINativeInterface *JNIEnv; JNI function 으로는 GetArrayElements Routines Array Type Native Type GetBooleanArrayElements() jbooleanArray jboolean GetByteArrayElements() jbyteArray jbyte GetCharArrayElem.. 더보기