今天閑來無事學(xué)準(zhǔn)備在Android Studio下編譯一個Ktolin Demo 運行一下秩贰。以為環(huán)境配置好了直接運行怒竿,編譯沒有錯誤汁果,結(jié)果運行直接報了這樣一個錯誤:
31013-31013/com.yan.newbe E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.yan.newbe, PID: 31013
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.yan.newbe/com.yan.newbe.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.yan.newbe.MainActivity" on path: DexPathList[[zip file "/data/app/com.yan.newbe-2/base.apk"],nativeLibraryDirectories=[/data/app/com.yan.newbe-2/lib/arm, /vendor/lib, /system/lib]]
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3133)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3416)
at android.app.ActivityThread.access$1100(ActivityThread.java:229)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1821)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:7407)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1321)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1211)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.yan.newbe.MainActivity" on path: DexPathList[[zip file "/data/app/com.yan.newbe-2/base.apk"],nativeLibraryDirectories=[/data/app/com.yan.newbe-2/lib/arm, /vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
at android.app.Instrumentation.newActivity(Instrumentation.java:1096)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3123)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3416)
at android.app.ActivityThread.access$1100(ActivityThread.java:229)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1821)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:7407)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1321)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1211)
Suppressed: java.lang.ClassNotFoundException: com.yan.newbe.MainActivity
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 12 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available
項目很簡單驾中,就是以Kotlin寫了一個MainActivity赵刑,布局中間一個TextView分衫,然后后APP啟動后顯示一個給TextView顯示Hello。結(jié)果啟動后直接崩潰了料睛,log如上丐箩。開始以為沒有在清單文件注冊摇邦,結(jié)果并不是恤煞。后來經(jīng)過一系列排查發(fā)現(xiàn)是少在app目錄下的build.gradle少添加了一行代碼。
我的解決方法:
在app目錄下的build.gradle配置文件中添加一行
apply plugin:'kotlin-android'
最后放出Demo地址