android中的java.lang.NoClassDefFoundError

时间:2013-04-12 07:00:18

标签: android noclassdeffounderror

我在项目中将Sherlock操作栏库更新为新版本。编译并运行logcat后显示NoClassDefFoundError。

我检查了jar版本。我在项目libs文件夹中添加了jar。我还检查了构建路径中的订单和导出选项卡。我也尝试过清洁和构建。我仍然得到NoClassDefFoundError。

我的LogCat如下所示

 E/AndroidRuntime(9699): java.lang.NoClassDefFoundError: com.mobiotics.tvbuddydemo.TVBuddyMainActivity
 E/AndroidRuntime(9699):    at com.mobiotics.tvbuddydemo.SplashScreen.onCreate(SplashScreen.java:54)
 E/AndroidRuntime(9699):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
 E/AndroidRuntime(9699):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1722)
 E/AndroidRuntime(9699):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1784)
 E/AndroidRuntime(9699):    at android.app.ActivityThread.access$1500(ActivityThread.java:123)
 E/AndroidRuntime(9699):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:939)
 E/AndroidRuntime(9699):    at android.os.Handler.dispatchMessage(Handler.java:99)
 E/AndroidRuntime(9699):    at android.os.Looper.loop(Looper.java:123)
 E/AndroidRuntime(9699):    at android.app.ActivityThread.main(ActivityThread.java:3839)
 E/AndroidRuntime(9699):    at java.lang.reflect.Method.invokeNative(Native Method)
 E/AndroidRuntime(9699):    at java.lang.reflect.Method.invoke(Method.java:507)
 E/AndroidRuntime(9699):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
 E/AndroidRuntime(9699):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
 E/AndroidRuntime(9699):    at dalvik.system.NativeStart.main(Native Method)

启动画面中的错误行

TVBuddyMainActivity.setSuccess(false);

我无法弄清楚之前工作正常的原因

我的主要成就

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mobiotics.tvbuddydemo"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" 
    android:targetSdkVersion="15"
    />
<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" 
    android:theme="@style/MyTheme" 
    android:screenOrientation="portrait" 
    >
     <activity
        android:name=".SplashScreen"
        android:label="@string/app_name" 
        android:screenOrientation="portrait" 
         >
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
     </activity>
            <activity
        android:name=".TVBuddyMain"
        android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
      </activity>
    <activity
        android:name=".CustomSearch"
        android:screenOrientation="portrait" 
        >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
      </activity>

    <activity 
        android:name=".PackageBuilderActivity"
        android:screenOrientation="portrait" 
        >           
    </activity>
      <service
        android:name="com.mobiotics.tvbuddy.data.service.Droid_service"
        android:exported="false" />
</application>
        <uses-permission android:name="android.permission.CAMERA" android:required="false"/>    
    <uses-feature android:name="android.hardware.camera" android:required="false"/>
    <uses-feature android:name="android.hardware.camera.autofocus" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</manifest>

2 个答案:

答案 0 :(得分:1)

如果您使用的是jar文件。不要通过“java Build path”添加。 Jar文件应该在 libs 文件夹中。如果没有libs文件夹创建它,请将您的jar文件放在 libs 文件夹中。然后右键单击jar文件并执行构建路径并添加到构建路径。

谢谢你

答案 1 :(得分:1)

com.mobiotics.tvbuddydemo.TVBuddyMainActivity未在android清单文件中声明。

您已声明android:name=".TVBuddyMain"不需要。

此外,访问活动内部的静态方法并不是一个好主意。

TVBuddyMainActivity.setSuccess(false)

通过意图传递该错误值。