[해결방법] java.lang.RuntimeException: Unable to instantiate activity

This topic contains 1 reply, has 2 voices, and was last updated by  cefm**** 2018-06-27 23:43.

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • #647

    technote
    Keymaster

    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.test/com.example.test.Activity}: java.lang.ClassNotFoundException: Didn’t find class “com.example.test.Activity” on path: DexPathList[[zip file “/system/priv-app/test/test.apk”],nativeLibraryDirectories=[/system/priv-app/test/lib/arm64, /system/lib64, /vendor/lib64, /system/lib64, /vendor/lib64]]

     

    apk 설치 후 실행을 하면 위와 같이 에러가 발생합니다.

    어디가 문제인지 궁금합니다.

    • This topic was modified 4 months, 2 weeks ago by  technote.

    #652

    cefm****
    Participant

    실행하려는 APK를 풀어보면 위와 같은 구조로 되어 있는 것을 볼 수 있습니다.

    이 중 classes.dex 파일 내에 구현한 class들이 포함되어 있습니다.

    AndroidManifest.xml 에는 사용될 Activity 들이 정의되어 있습니다.

     

    위와 같이 Didn’t find class 라고 에러가 발생할 경우는 다음과 같습니다.

    1. class 가 빌드되지 않아 classes.dex에 존재하지 않을 경우
    2. class 는 빌드되었지만 AndroidManifest.xml에 정의되지 않았을 경우

    위 두 경우에 대해 살펴보아야 합니다.

    class 가 빌드되지 않아 classes.dex에 존재하지 않을 경우 유독 classes.dex 파일의 사이즈가 작습니다.

    1. Android.mk 를 통해 AOSP 빌드시 APK를 생성하는 경우
      LOCAL_SRC_FILES 에 java file들이 정상적으로 포함되어 있는지 확인이 필요합니다.
    2. Android studio 를 통해 APK를 생성하는 경우
      project 내에 java 파일이 정상적으로 포함되어 있는지 확인이 필요합니다.

    class 는 빌드되었지만 AndroidManifest.xml에 정의되지 않았을 경우 AndroidManifest.xml 파일내에 <activity> tag를 통해 진입하고자하는 Activity class가 정상적으로 정의되었는지 확인이 필요합니다.

Viewing 2 posts - 1 through 2 (of 2 total)

You must be logged in to reply to this topic.