【问题标题】:Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available原因:java.lang.NoClassDefFoundError: Class not found using the boot class loader;没有可用的堆栈
【发布时间】:2016-03-12 02:23:19
【问题描述】:

我有安卓应用程序。当我在我的 Eclipse 上运行或调试应用程序时,它可以顺利运行 没有错误没有警告。然后我得到了谷歌播放的apk。用户从 Google Play 市场下载时遇到错误。请帮助我,我无法解决这个问题。它找不到一些类。

这是从开发者控制台获取的错误;

java.lang.NoClassDefFoundError: Failed resolution of: Lcom/versus/hit/yeni/JSONParser;
    at com.versus.hit.yeni.Signin$CheckUser.<init>(Signin.java:211)
    at com.versus.hit.yeni.Signin$2.onClick(Signin.java:121)
    at android.view.View.performClick(View.java:4785)
    at android.view.View$PerformClick.run(View.java:19858)
    at android.os.Handler.handleCallback(Handler.java:739)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:155)
    at android.app.ActivityThread.main(ActivityThread.java:5696)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1028)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.versus.hit.yeni.JSONParser" on path: DexPathList[[zip file "/data/app/com.versus.hit.yeni-1/base.apk"],nativeLibraryDirectories=[/system/lib, /vendor/lib, system/vendor/lib, system/vendor/lib/egl, system/lib/hw]]
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
    ... 12 more
    Suppressed: java.lang.ClassNotFoundException: com.versus.hit.yeni.JSONParser
        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)
        ... 13 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

java.lang.NoClassDefFoundError: Failed resolution of: Lcom/versus/hit/yeni/JSONParser;
    at com.versus.hit.yeni.Signup.parseJson(Signup.java:384)
    at com.versus.hit.yeni.Signup.onCreateView(Signup.java:165)
    at android.support.v4.app.Fragment.performCreateView(Fragment.java:1478)
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:927)
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
    at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1460)
    at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:440)
    at android.os.Handler.handleCallback(Handler.java:739)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:155)
    at android.app.ActivityThread.main(ActivityThread.java:5696)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1028)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.versus.hit.yeni.JSONParser" on path: DexPathList[[zip file "/data/app/com.versus.hit.yeni-1/base.apk"],nativeLibraryDirectories=[/system/lib, /vendor/lib, system/vendor/lib, system/vendor/lib/egl, system/lib/hw]]
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
    ... 16 more
    Suppressed: java.lang.ClassNotFoundException: com.versus.hit.yeni.JSONParser
        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)
        ... 17 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

java.lang.NoClassDefFoundError: Failed resolution of: Lcom/versus/hit/yeni/ACProgressFlower$Builder;
    at com.versus.hit.yeni.Signin$CheckUser.onPreExecute(Signin.java:236)
    at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:587)
    at android.os.AsyncTask.execute(AsyncTask.java:535)
    at com.versus.hit.yeni.Signin$2.onClick(Signin.java:123)
    at android.view.View.performClick(View.java:4785)
    at android.view.View$PerformClick.run(View.java:19858)
    at android.os.Handler.handleCallback(Handler.java:739)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:155)
    at android.app.ActivityThread.main(ActivityThread.java:5696)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1028)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.versus.hit.yeni.ACProgressFlower$Builder" on path: DexPathList[[zip file "/data/app/com.versus.hit.yeni-1/base.apk"],nativeLibraryDirectories=[/system/lib, /vendor/lib, system/vendor/lib, system/vendor/lib/egl, system/lib/hw]]
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
    ... 14 more
    Suppressed: java.lang.ClassNotFoundException: com.versus.hit.yeni.ACProgressFlower$Builder
        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)
        ... 15 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

这是我的清单;

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.versus.hit.yeni"
android:versionCode="5"
android:versionName="1.2.2" >

<uses-sdk
    android:minSdkVersion="11"
    android:targetSdkVersion="22" />

 <uses-permission android:name="android.permission.INTERNET"/>
      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
         <uses-permission android:name="android.permission.GET_ACCOUNTS" />
         <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
         <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >


          <activity android:name="com.versus.hit.yeni.SplashActivity"
        android:windowSoftInputMode="adjustPan"
        android:screenOrientation="portrait"
         android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
           <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />

        </intent-filter>


             <intent-filter>
                  <action android:name="com.versus.hit.yeni.MY_ACTION" />
                    <action android:name="android.intent.action.VIEW" />
                  <category android:name="android.intent.category.DEFAULT" />
                  <category android:name="android.intent.category.BROWSABLE" />

                 <data  android:scheme="versus" android:host="www.versushit.com" />


              </intent-filter>


    </activity>


    <activity android:name="com.versus.hit.yeni.MainActivity"
        android:windowSoftInputMode="adjustPan"
        android:screenOrientation="portrait"
           android:theme="@style/Theme.Sherlock.Light.DarkActionBar" >


    </activity>
    <activity android:name="com.versus.hit.yeni.SearchActivity"

           android:theme="@style/ACPLDialog" >

    </activity>
    <activity android:name="com.versus.hit.yeni.PersonalPage"

        android:windowSoftInputMode="adjustPan"
           android:theme="@style/Theme.Sherlock.Light.DarkActionBar" >

    </activity>
     <activity android:name="com.versus.hit.yeni.FollowActivity"
           android:theme="@style/ACPLDialog" >

    </activity>


      <activity
        android:name="com.versus.hit.yeni.ReportActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.REPORT" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>

    </activity>


        <activity
        android:name="com.versus.hit.yeni.MailSender"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIL" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>

    </activity>



     <activity
        android:name=".FacebookLoginActivity"
          android:screenOrientation="portrait"
        android:theme="@android:style/Theme.Translucent.NoTitleBar" />
    <activity
        android:name="com.facebook.LoginActivity"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Translucent.NoTitleBar" />




    <meta-data
        android:name="com.facebook.sdk.ApplicationId"
        android:value="@string/appid" />

</application>

【问题讨论】:

    标签: java android eclipse google-play classnotfoundexception


    【解决方案1】:

    您的 gradle 文件中似乎有 minifyEnabled true,在发布 buildTypes 中,minifyEnabled false 在调试中。

    如果是这样,请尝试在您的 proguard-rules.pro 文件中添加:

    1. -keep class com.versus.hit.yeni.ACProgressFlower$Builder
    2. -keep class com.versus.hit.yeni.JSONParser

    【讨论】:

      【解决方案2】:

      如果您对项目没有做任何事情,但发现了这个问题,您可以尝试一下。 Android对我来说是新的,所以当我遇到这个问题时,我会清除所有自动生成的文件,包括android studio的.gradle.build等。有用!享受你的编码!

      【讨论】:

        【解决方案3】:

        就我而言,这是因为我移动了项目位置。 我把主模块的“.gradle”包去掉,然后解决问题。

        【讨论】:

          【解决方案4】:

          从您的项目文件夹中删除临时 .gradle 文件夹。

          【讨论】:

            【解决方案5】:

            我遇到了类似的问题

            在我的情况下,它是因为即时运行而发生的,只需禁用它

            转到:

            Android Studio --> 文件 --> 设置 --> 构建、执行、部署 --> 即时运行。

            【讨论】:

            • 我没有看到任何所谓的“即时运行”选项!!我在哪里可以看到这个选项?
            • 您使用的是哪个版本的 Android Studio?
            【解决方案6】:
            1. 卸载应用程序

            2. 重启手机

            3. 重新安装应用

            【讨论】:

              【解决方案7】:

              我通过改变解决了我的问题

              classpath 'com.android.tools.build:gradle:2.0.0-beta2'
              

              classpath 'com.android.tools.build:gradle:1.3.0'
              

              在 build.gradle 文件中。我不确定为什么这解决了这个问题。这可能是测试版中的一个错误。

              【讨论】:

                【解决方案8】:

                它在说-

                java.lang.ClassNotFoundException: Didn't find class "com.versus.hit.yeni.ACProgressFlower$Builder"
                

                检查您所调用的内容是否存在于同一路径的 bin 文件夹中,如果不尝试再次添加与 @ahmad said 相同的库或清理项目并再次运行。 NoClassDefFoundError 表示类加载器找不到您尝试使用的类的 .class 文件。

                【讨论】:

                  【解决方案9】:

                  请以正确的方式链接您的库,您的库未与您的应用程序一起编译,如果您使用的是 3rd 方库,请确保在链接它们时将它们复制到项目中。链接库的屏幕截图会有所帮助。

                  另外,请尝试迁移到 Android Studio,它在处理库方面比 Eclipse 好得多。

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 2018-01-25
                    • 2014-05-13
                    • 2017-08-04
                    • 1970-01-01
                    • 1970-01-01
                    • 2020-11-25
                    • 2011-11-06
                    相关资源
                    最近更新 更多