如何修复ClassNotFoundException?

时间:2016-11-17 09:21:19

标签: java android sdk

这有点奇怪...我已经将sdk版本升级到25并且之后尝试午餐应用程序..并且出现了这样的错误

FATAL EXCEPTION: main
Process: com.fittingroom.newtimezone, PID: 2465
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.fittingroom.newtimezone/com.fittingroom.newtimezone.view.ActivitySplash}: java.lang.ClassNotFoundException: Didn't find class "com.fittingroom.newtimezone.view.ActivitySplash" on path: DexPathList[[zip file "/data/app/com.fittingroom.newtimezone-2/base.apk"],nativeLibraryDirectories=[/data/app/com.fittingroom.newtimezone-2/lib/arm, /vendor/lib, /system/lib]]
   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3093)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349)
   at android.app.ActivityThread.access$1100(ActivityThread.java:221)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
   at android.os.Handler.dispatchMessage(Handler.java:102)
   at android.os.Looper.loop(Looper.java:158)
   at android.app.ActivityThread.main(ActivityThread.java:7224)
   at java.lang.reflect.Method.invoke(Native Method)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.fittingroom.newtimezone.view.ActivitySplash" on path: DexPathList[[zip file "/data/app/com.fittingroom.newtimezone-2/base.apk"],nativeLibraryDirectories=[/data/app/com.fittingroom.newtimezone-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:1095)
   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3083)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349) 
   at android.app.ActivityThread.access$1100(ActivityThread.java:221) 
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794) 
   at android.os.Handler.dispatchMessage(Handler.java:102) 
   at android.os.Looper.loop(Looper.java:158) 
   at android.app.ActivityThread.main(ActivityThread.java:7224) 
   at java.lang.reflect.Method.invoke(Native Method) 
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 
Suppressed: java.lang.ClassNotFoundException: com.fittingroom.newtimezone.view.ActivitySplash
   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

我已经将所有依赖项更新为25但是无论如何我都会收到此错误。

错误说我没有这样的课,但我有

enter image description here

我做错了什么?如何解决这个问题?

由于

4 个答案:

答案 0 :(得分:4)

我面对的只是我刚刚使用的那个:

档案 - >使高速缓存/重新启动无效

它对我有用。

答案 1 :(得分:0)

之前我遇到过这个错误: 首先尝试这个来清理和重建你的项目。

然后打开文件 - >使高速缓存/重新启动无效,单击蓝色按钮使高速缓存/重新启动无效。

如果这不起作用,请尝试此解决方案:

1-添加到您的build.gradle(Module.app)

 defaultConfig {
         multiDexEnabled true

2-在依赖项中添加它:

dependencies {
    compile 'com.android.support:multidex:1.0.1'
}

2-在清单文件中添加此

<application
android:name="android.support.multidex.MultiDexApplication">

它正确地与我合作。

我认为问题在于你在Gradle中使用了很多库 ,您可能已超过64K参考限制。

答案 2 :(得分:0)

我们可以通过不同的方式解决这个问题,

1.如果您使用 即时运行 ,请取消选中其选项

2.添加 multiDexEnabled true 以在项目应用程序类中gradle或添加multidex

答案 3 :(得分:0)

我有同样的错误并修复它。因为我创建时更改了默认的MainActivity名称,但我没有在清单默认文件夹中更改。

<application>
    <activity android:name=".MakeSureYouHaveTheSame'MainActivity'NameHere">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>