마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

앱의 내부 실행 순서에 대하여 [closed]

0 추천

유니티에서 작업중입니다...

 

최근 패키지 명을 변경하게 되어 유니티 프로젝트와 라이브러리에서도 동일하게 변경을 했습니다.(PUSH등등) (이하 com.A.MH가 기존의 이름, com.D.MH이 변경된 이름)

그리고 당연히 메니패스트에서도 com.A.MH인 것을 com.D.MH로 모두 변경했구요. 

 

이상태로 apk를 만들어 실행을 하면 다음과 같은 로그를 볼 수 있습니다.

01-14 15:46:53.791: E/AndroidRuntime(19210): FATAL EXCEPTION: main
01-14 15:46:53.791: E/AndroidRuntime(19210): Process: com.D.MH, PID: 19210
01-14 15:46:53.791: E/AndroidRuntime(19210): java.lang.NoClassDefFoundError: com/A/MH/~NativeCall
 
이름이 변경되기 전의 클래스를 찾으니 당연히 에러가 납니다. 혹시나 해서 매니패스트를 봤는데
 
    <activity android:name="com/D/MH/~NativeCall" android:label="@string/app_name" ...
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>

당연히 이름이 바뀌어져 있구요. APK나오기 전 임시파일에서 확인해봐도 정상적으로 변경되어있습니다.

 

 

어디를 더 확인해보아야할까요? 질문이 너무 추상적인가..

제 생각에는 메니페스트를 제일 먼저 읽고 거기서 메인에 해당하는액티비티를 찾아서 로드할 것 같은데... 보시다시피 메니페스트는 정상임에도 패키지명 변경하기 전의 엑티비티를 호출하는 점에서 미처 변경하지 못한 부분을 먼저 참조하는 바람에 에러가 나는것 같습니다.

앱 구동시 읽어들이는 파일의 순서를 안다면 좀 더 잘 찾을 수 있을 것 같은데 확인할 수 있는 방법이나 레퍼런스 부탁드립니다.

 

 

질문을 종료한 이유: 다른문제
foranie (120 포인트) 님이 2015년 1월 14일 질문
foranie님이 2015년 1월 14일 closed
...