프로그램/안드로이드

Android 에서 Application 객체로 전역변수를 사용할 수 없을 때.

(주)CKBcorp., 2013. 12. 4. 06:00
반응형


일반적으로 안드로이드 객체로 전역변수 사용하는 법을 검색하면, 두 가지가 나온다.


1.1. AndroidManifest.xml 에서 Application 객체의 이름 선언( android:name="전역 클래스 이름" ) 을 추가하고, 

1.2. 전역 클래스 aaa = (전역 클래스)getApplication(); 으로 객체를 가져다 쓴다.


2. 싱글톤 ( SingleTone )사용.



근데 나는 2.번에 익숙치도 않고, 구조체가 좀 크기도 하고...기타등등 해서 주로 1번 쓰는데,

자꾸 에러나더라.


처음엔 이게...에러 날 만한 내용이 아니라서 "혹시 오타? 설정미스?" 라고 생각하고 계속 디비보다가 도저히 모르겠어서 포기할.... 생각까지 하다 혹시나 해서 에러 메시지를 디비봤다.


newInstance failed: ... <init>() not accessible to Landroid/app/Instrumentation;


검색해 보니, 선언한 전역변수 클래스에 접근 권한이 없는거란다. (https://groups.google.com/forum/#!topic/android-developers/0Gw5WHc1J6g ) 함수 생성자를 public 으로 선언했는지 보라는군.


그리고, 고쳤다. OTL.


우리모두 Global 을 Class 선언할 때는 생성자를 public 으로 하는 걸 잊지 말자. 수고.




 


반응형