[Android 출시 에러] Caused by: java.lang.ClassNotFoundException: Didn’t find class “.MainActivity”

최대 1 분 소요

‘com.example’은(는) 제한되어 있으므로 다른 패키지 이름을 사용해야 합니다.

다운로드

패키지명 변경

  1. /android/app/buld.gradle -> defaultConfig 내 applicationId 값을 새로운 패키지 이름으로 변경
  2. /app/src/ 하위에 있는 debug, main, profile 폴더에 AndroidManifest.xml 파일을 열어 태그의 옵션값인 package를 찾아 모두 패키지 이름을 변경
  3. google-services.json 안에 있는 패키지명도 변경
  4. 끝?

에러 발생

E/AndroidRuntime(10676): FATAL EXCEPTION: main
E/AndroidRuntime(10676): Process: com.cra.han_bab, PID: 10676
E/AndroidRuntime(10676): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.cra.han_bab/com.cra.han_bab.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.cra.han_bab.MainActivity" on path: DexPathList[[zip file "/data/app/com.cra.han_bab-5rqLLH6n-NUvOtf0Vbg2Pw==/base.apk"],nativeLibraryDirectories=[/data/app/com.cra.han_bab-5rqLLH6n-NUvOtf0Vbg2Pw==/lib/arm64, /data/app/com.cra.han_bab-5rqLLH6n-NUvOtf0Vbg2Pw==/base.apk!/lib/arm64-v8a, /system/lib64]]
E/AndroidRuntime(10676): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3547)
E/AndroidRuntime(10676): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3806)
E/AndroidRuntime(10676): 	at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
E/AndroidRuntime(10676): 	at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
E/AndroidRuntime(10676): 	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
E/AndroidRuntime(10676): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2267)
E/AndroidRuntime(10676): 	at android.os.Handler.dispatchMessage(Handler.java:107)
E/AndroidRuntime(10676): 	at android.os.Looper.loop(Looper.java:237)
E/AndroidRuntime(10676): 	at android.app.ActivityThread.main(ActivityThread.java:8167)
E/AndroidRuntime(10676): 	at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(10676): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496)
E/AndroidRuntime(10676): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100)
E/AndroidRuntime(10676): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.cra.han_bab.MainActivity" on path: DexPathList[[zip file "/data/app/com.cra.han_bab-5rqLLH6n-NUvOtf0Vbg2Pw==/base.apk"],nativeLibraryDirectories=[/data/app/com.cra.han_bab-5rqLLH6n-NUvOtf0Vbg2Pw==/lib/arm64, /data/app/com.cra.han_bab-5rqLLH6n-NUvOtf0Vbg2Pw==/base.apk!/lib/arm64-v8a, /system/lib64]]
E/AndroidRuntime(10676): 	at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:196)
E/AndroidRuntime(10676): 	at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
E/AndroidRuntime(10676): 	at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
E/AndroidRuntime(10676): 	at android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:95)
E/AndroidRuntime(10676): 	at androidx.core.app.CoreComponentFactory.instantiateActivity(CoreComponentFactory.java:45)
E/AndroidRuntime(10676): 	at android.app.Instrumentation.newActivity(Instrumentation.java:1251)
E/AndroidRuntime(10676): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3535)
E/AndroidRuntime(10676): 	... 11 more

Wrtn : com.cra.han_bab.MainActivity 클래스를 찾을 수 없어서 충돌하는 문제가 발생

해결방법 <change_app_package_name 라이브러리>

https://pub.dev/packages/change_app_package_name

설치

$ flutter pub add change_app_package_name

사용

  1. $ flutter pub run change_app_package_name:main (새로운 패키지명)
  2. google-services.json 안에 있는 패키지명은 수동 변경
  3. $ flutter build appbundle

카테고리:

업데이트: