最近AndroidStudio总是提示有最新稳定版本2.3.3可供下载,大半年时间过去了,最后还是忍不住点了更新,更新完AS后,提示更新对应的gradle版本3.3版本及gradle classpath:2.3.3;但是都采用最新版本后,发现原本之前好好的项目,在运行debug版本时总是提示错误,而直接打包成release版本则不会报错
报的错如下:
java.lang.RuntimeException: Unable to instantiate application com.ztph.mall.ZTPHApplication: java.lang.ClassNotFoundException: Didn't find class "com.ztph.mall.ZTPHApplication" on path: DexPathList[[zip file "/data/app/com.ztph.mall-1/base.apk"],nativeLibraryDirectories=[/data/app/com.ztph.mall-1/lib/arm64, /data/app/com.ztph.mall-1/base.apk!/lib/arm64-v8a, /vendor/lib64, /system/lib64]]
at android.app.LoadedApk.makeApplication(LoadedApk.java:591)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4937)
at android.app.ActivityThread.access$1700(ActivityThread.java:180)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1555)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5791)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.ztph.mall.ZTPHApplication" on path: DexPathList[[zip file "/data/app/com.ztph.mall-1/base.apk"],nativeLibraryDirectories=[/data/app/com.ztph.mall-1/lib/arm64, /data/app/com.ztph.mall-1/base.apk!/lib/arm64-v8a, /vendor/lib64, /system/lib64]]
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.newApplication(Instrumentation.java:986)
at android.app.LoadedApk.makeApplication(LoadedApk.java:586)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4937)
at android.app.ActivityThread.access$1700(ActivityThread.java:180)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1555)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5791)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762)
Suppressed: java.lang.ClassNotFoundException: com.ztph.mall.ZTPHApplication
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
当时很奇怪,由于项目导入了第三方so库,还以为是库的原因,然后从git上又把项目clone一遍,采用之前没问题的代码节点进行编译打包,还是报错,接着就网上下载旧版本的AndroidStudio、网上找相同报错的原因........等等一系列折腾,问题还是得不到最终的解决。
折腾了一天后,最后灵机一动,改成旧版本的gradle:
修改如下:
根目录下的build.gradle修改为:
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
gradle文件目录下的gradle-wrapper.properties修改:
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
修改gradle版本后,开始打包运行,这下再也没报这个错误了,问题完美解决。我只想说原来都是gradle打包的问题。。。。。哎😌