首页 > 解决方案 > 启动应用程序时抛出 java.lang.NoClassDefFoundError

问题描述

当我在 Android Studio 中创建一个新项目,添加一个空活动并点击运行时,我java.lang.NoClassDefFoundErrorsetContentView(R.layout.activity_main)应用程序启动时遇到了问题。该应用程序编译良好并正常运行,但我仍然认为完全抛出错误很奇怪。这是完整的错误日志和代码:

package com.connerdassen.testapp;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

I/art: Rejecting re-init on previously-failed class java.lang.Class<android.support.v4.view.ViewCompat$OnUnhandledKeyEventListenerWrapper>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/view/View$OnUnhandledKeyEventListener;
            at void android.support.v4.view.ViewCompat.setBackground(android.view.View, android.graphics.drawable.Drawable) (ViewCompat.java:2341)
            at void android.support.v7.widget.ActionBarContainer.<init>(android.content.Context, android.util.AttributeSet) (ActionBarContainer.java:62)
            at java.lang.Object java.lang.reflect.Constructor.newInstance0!(java.lang.Object[]) (Constructor.java:-2)
            at java.lang.Object java.lang.reflect.Constructor.newInstance(java.lang.Object[]) (Constructor.java:430)
            at android.view.View android.view.LayoutInflater.createView(java.lang.String, java.lang.String, android.util.AttributeSet) (LayoutInflater.java:645)
            at android.view.View android.view.LayoutInflater.createViewFromTag(android.view.View, java.lang.String, android.content.Context, android.util.AttributeSet, boolean) (LayoutInflater.java:787)
            at android.view.View android.view.LayoutInflater.createViewFromTag(android.view.View, java.lang.String, android.content.Context, android.util.AttributeSet) (LayoutInflater.java:727)
            at void android.view.LayoutInflater.rInflate(org.xmlpull.v1.XmlPullParser, android.view.View, android.content.Context, android.util.AttributeSet, boolean) (LayoutInflater.java:858)
            at void android.view.LayoutInflater.rInflateChildren(org.xmlpull.v1.XmlPullParser, android.view.View, android.util.AttributeSet, boolean) (LayoutInflater.java:821)
            at android.view.View android.view.LayoutInflater.inflate(org.xmlpull.v1.XmlPullParser, android.view.ViewGroup, boolean) (LayoutInflater.java:518)
            at android.view.View android.view.LayoutInflater.inflate(int, android.view.ViewGroup, boolean) (LayoutInflater.java:426)
            at android.view.View android.view.LayoutInflater.inflate(int, android.view.ViewGroup) (LayoutInflater.java:377)
            at android.view.ViewGroup android.support.v7.app.AppCompatDelegateImpl.createSubDecor() (AppCompatDelegateImpl.java:607)
            at void android.support.v7.app.AppCompatDelegateImpl.ensureSubDecor() (AppCompatDelegateImpl.java:518)
            at void android.support.v7.app.AppCompatDelegateImpl.setContentView(int) (AppCompatDelegateImpl.java:466)
            at void android.support.v7.app.AppCompatActivity.setContentView(int) (AppCompatActivity.java:140)
            at void com.connerdassen.testapp.MainActivity.onCreate(android.os.Bundle) (MainActivity.java:11)
            at void android.app.Activity.performCreate(android.os.Bundle) (Activity.java:6662)
            at void android.app.Instrumentation.callActivityOnCreate(android.app.Activity, android.os.Bundle) (Instrumentation.java:1118)
            at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2599)
            at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:2707)
            at void android.app.ActivityThread.-wrap12(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
            at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1460)
            at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
            at void android.os.Looper.loop() (Looper.java:154)
            at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6077)
            at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2)
            at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:866)
            at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:756)
        Caused by: java.lang.ClassNotFoundException: Didn't find class "android.view.View$OnUnhandledKeyEventListener" on path: DexPathList[[zip file "/data/app/com.connerdassen.testapp-1/base.apk", zip file "/data/app/com.connerdassen.testapp-1/split_lib_dependencies_apk.apk", zip file "/data/app/com.connerdassen.testapp-1/split_lib_slice_0_apk.apk", zip file "/data/app/com.connerdassen.testapp-1/split_lib_slice_1_apk.apk", zip file "/data/app/com.connerdassen.testapp-1/split_lib_slice_2_apk.apk", zip file "/data/app/com.connerdassen.testapp-1/split_lib_slice_3_apk.apk", zip file "/data/app/com.connerdassen.testapp-1/split_lib_slice_4_apk.apk", zip file "/data/app/com.connerdassen.testapp-1/split_lib_slice_5_apk.apk", zip file "/data/app/com.connerdassen.testapp-1/split_lib_slice_6_apk.apk", zip file "/data/app/com.connerdassen.testapp-1/split_lib_slice_7_apk.apk", zip file "/data/app/com.connerdassen.testapp-1/split_lib_slice_8_apk.apk", zip file "/data/app/com.connerdassen.testapp-1/split_lib_slice_9_apk.apk"],na
            at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56)
            at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:380)
            at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
            at void android.support.v4.view.ViewCompat.setBackground(android.view.View, android.graphics.drawable.Drawable) (ViewCompat.java:2341)
            at void android.support.v7.widget.ActionBarContainer.<init>(android.content.Context, android.util.AttributeSet) (ActionBarContainer.java:62)
            at java.lang.Object java.lang.reflect.Constructor.newInstance0!(java.lang.Object[]) (Constructor.java:-2)
            at java.lang.Object java.lang.reflect.Constructor.newInstance(java.lang.Object[]) (Constructor.java:430)
            at android.view.View android.view.LayoutInflater.createView(java.lang.String, java.lang.String, android.util.AttributeSet) (LayoutInflater.java:645)
            at android.view.View android.view.LayoutInflater.createViewFromTag(android.view.View, java.lang.String, android.content.Context, android.util.AttributeSet, boolean) (LayoutInflater.java:787)
    I/art:     at android.view.View android.view.LayoutInflater.createViewFromTag(android.view.View, java.lang.String, android.content.Context, android.util.AttributeSet) (LayoutInflater.java:727)
            at void android.view.LayoutInflater.rInflate(org.xmlpull.v1.XmlPullParser, android.view.View, android.content.Context, android.util.AttributeSet, boolean) (LayoutInflater.java:858)
            at void android.view.LayoutInflater.rInflateChildren(org.xmlpull.v1.XmlPullParser, android.view.View, android.util.AttributeSet, boolean) (LayoutInflater.java:821)
            at android.view.View android.view.LayoutInflater.inflate(org.xmlpull.v1.XmlPullParser, android.view.ViewGroup, boolean) (LayoutInflater.java:518)
            at android.view.View android.view.LayoutInflater.inflate(int, android.view.ViewGroup, boolean) (LayoutInflater.java:426)
            at android.view.View android.view.LayoutInflater.inflate(int, android.view.ViewGroup) (LayoutInflater.java:377)
            at android.view.ViewGroup android.support.v7.app.AppCompatDelegateImpl.createSubDecor() (AppCompatDelegateImpl.java:607)
            at void android.support.v7.app.AppCompatDelegateImpl.ensureSubDecor() (AppCompatDelegateImpl.java:518)
            at void android.support.v7.app.AppCompatDelegateImpl.setContentView(int) (AppCompatDelegateImpl.java:466)
            at void android.support.v7.app.AppCompatActivity.setContentView(int) (AppCompatActivity.java:140)
            at void com.connerdassen.testapp.MainActivity.onCreate(android.os.Bundle) (MainActivity.java:11)
            at void android.app.Activity.performCreate(android.os.Bundle) (Activity.java:6662)
            at void android.app.Instrumentation.callActivityOnCreate(android.app.Activity, android.os.Bundle) (Instrumentation.java:1118)
            at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2599)
            at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:2707)
            at void android.app.ActivityThread.-wrap12(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
            at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1460)
            at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
            at void android.os.Looper.loop() (Looper.java:154)
            at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6077)
            at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2)
            at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:866)
            at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:756)

标签: androidnoclassdeffounderror

解决方案


推荐阅读