启动画面中Pojo类的NoClassDefFoundError

时间:2016-11-28 11:16:13

标签: android noclassdeffounderror pojo

AndroidManifest.java

Boolean(String)

我正在访问具有返回值的静态方法的Pojo类。当我在我的Splash Screen类(Launcher页面)中访问此静态方法时,我得到了该Pojo类的NoClassDefFoundError。如何在不使方法非静态的情况下避免此异常?

logcat的

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.bidnextjob.bidnextjob">

    <!-- Lat lon fetching permission by GPSTracker class start and also use for google map -->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
    <uses-permission android:name="com.bidnextjob.bidnextjob.permission.C2D_MESSAGE" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.FLASHLIGHT" />
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <!-- Allows access to the flashlight -->
    <permission
        android:name="android.permission.FLASHLIGHT"
        android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
        android:protectionLevel="normal" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/MyTheme">
        <activity android:name=".SplashActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".MainActivity" />
        <activity android:name=".LoginActivity" />
        <activity android:name=".RegisterActivity" />
        <activity
            android:name=".HomeActivity"
            android:windowSoftInputMode="stateAlwaysHidden" />
        <activity android:name=".FilterActivity" />
        <activity android:name=".JobDetailsActivity" />
        <activity android:name=".EditProfileActivity"
            android:windowSoftInputMode="stateAlwaysHidden"/>
        <activity
            android:name=".ChatActivity"
            android:windowSoftInputMode="stateAlwaysHidden" />

        <activity android:name=".AboutUsActivity" />
        <activity android:name=".HelpActivity" />
        <activity android:name=".ReviewActivity" />
        <activity
            android:name=".CommentActivity"
            android:windowSoftInputMode="stateAlwaysHidden" />
        <activity android:name=".ForgetPasswordActivity" />
        <activity
            android:name=".PlaceBidActivity"
            android:windowSoftInputMode="stateAlwaysHidden" />
        <activity
            android:name=".EditBidActivity"
            android:windowSoftInputMode="stateAlwaysHidden" />
        <activity android:name=".JobDetails1Activity" />
        <activity android:name=".NotificationsActivity" />
        <activity android:name=".ChooseCategoryActivity" />
        <activity android:name=".BidDetailsActivity" />
        <activity android:name=".EditAddressActivity" />
        <activity android:name=".UpdateProfileActivity" />
        <activity android:name=".GiveRatingActivity" />
        <activity android:name=".ArchiveActivity"/>
        <activity android:name=".AutoCompleteAddress"/>
        <activity
            android:name=".SocialLoginActivity"
            android:label=".SocialLoginActivity" />

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

        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />

        <meta-data
            android:name="com.google.android.geo.API_KEY"
            android:value="<some api key>" />

        <activity
            android:name="com.facebook.FacebookActivity"
            android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
            android:label="@string/app_name"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" />

        <service android:name="utilities.gcm.GcmIntentService" />

        <receiver
            android:name="utilities.gcm.GcmBroadcastReceiver"
            android:permission="com.google.android.c2dm.permission.SEND">
            <intent-filter>
                <action android:name="com.google.android.c2dm.intent.RECEIVE" />
                <action android:name="com.google.android.c2dm.intent.REGISTRATION" />

                <category android:name="com.bidnextjob.bidnextjob" />
            </intent-filter>
        </receiver>
    </application>
</manifest>

Pojo课程

FATAL EXCEPTION: main
Process: com.bidnextjob.bidnextjob, PID: 30515
java.lang.NoClassDefFoundError: shared_pref.SharedStorage
at com.bidnextjob.bidnextjob.SplashActivity.onCreate(SplashActivity.java:21)
at android.app.Activity.performCreate(Activity.java:5280)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1088)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2322)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2410)
at android.app.ActivityThread.access$800(ActivityThread.java:155)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1331)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:5388)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:655)
at dalvik.system.NativeStart.main(Native Method)

启动画面类

package shared_pref;

public class SharedStorage {
    static SharedPreferences preference;

    private static String prefData="ExampleStructApp";

    public static String UserId= "UserId";
    public static String UserType= "UserType";

    public static void setValue(Context context,String key,String data){
        preference = context.getSharedPreferences(prefData, Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = preference.edit();
        editor.putString(key,data);
        editor.commit();
    }

    public static String getValue(Context context,String key){
        preference = context.getSharedPreferences(prefData, Context.MODE_PRIVATE);
        String id = preference.getString(key,"");
        return id;
    }

    public static void resetValue(Context context){
        preference = context.getSharedPreferences(prefData, Context.MODE_PRIVATE);
        preference.edit().clear().commit();
    }
}

1 个答案:

答案 0 :(得分:0)

当您的代码所依赖的类文件存在于编译时但在运行时未找到时,会导致这种情况。查找构建时和运行时类路径的差异。