Android 2.3.6上的java.lang.NoClassDefFoundError使用appcompat lib

时间:2013-09-11 09:57:48

标签: android actionbarsherlock android-2.3-gingerbread android-actionbar-compat

最近谷歌发布了app compat support library,支持与Android 2.1兼容的ActionBar

我已经成功地将它集成到我的应用程序中并用这个替换了ActionBarSherlock,我能够在大多数活动中看到android 2.3.6上的操作栏。

但是现在我面临着一些奇怪的java.lang.NoClassDefFoundError错误,因为Android 2.3.6上的一些活动,Same apk在Android 4.2.2上工作正常

不知道造成这个问题的原因是什么?我尝试用ant构建脚本制作apk并通过我的IDE(Intellij Idea),问题仍然存在。

09-11 15:01:53.953: WARN/System.err(29795): java.lang.NoClassDefFoundError: com.abs.myapp.view.SearchPlacesMallsActivity
09-11 15:01:53.953: WARN/System.err(29795): at com.abs.myapp.view.SampleActivity.openPage(SampleActivity.java:302)
09-11 15:01:53.953: WARN/System.err(29795): at com.abs.myapp.view.SampleActivity.access$500(SampleActivity.java:31)
09-11 15:01:53.960: WARN/System.err(29795): at com.abs.myapp.view.SampleActivity$3.onClick(SampleActivity.java:189)
09-11 15:01:53.960: WARN/System.err(29795): at android.view.View.performClick(View.java:2485)
09-11 15:01:53.960: WARN/System.err(29795): at android.view.View$PerformClick.run(View.java:9080)
09-11 15:01:53.960: WARN/System.err(29795): at android.os.Handler.handleCallback(Handler.java:587)
09-11 15:01:53.960: WARN/System.err(29795): at android.os.Handler.dispatchMessage(Handler.java:92)
09-11 15:01:53.960: WARN/System.err(29795): at android.os.Looper.loop(Looper.java:130)
09-11 15:01:53.960: WARN/System.err(29795): at android.app.ActivityThread.main(ActivityThread.java:3687)
09-11 15:01:53.960: WARN/System.err(29795): at java.lang.reflect.Method.invokeNative(Native Method)
09-11 15:01:53.960: WARN/System.err(29795): at java.lang.reflect.Method.invoke(Method.java:507)
09-11 15:01:53.960: WARN/System.err(29795): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
09-11 15:01:53.960: WARN/System.err(29795): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
09-11 15:01:53.960: WARN/System.err(29795): at dalvik.system.NativeStart.main(Native Method)

下面是我的导入声明

package com.abs.myapp.view;

import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.view.MenuItemCompat;
import android.text.Html;
import android.text.TextUtils;
import android.util.Log;
import android.util.TypedValue;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.animation.Animation;
import android.view.inputmethod.InputMethodManager;
import android.widget.*;
import android.widget.AdapterView.OnItemClickListener;
import com.abs.myapp.R;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

1 个答案:

答案 0 :(得分:1)

最后这个问题得到了解决,我的活动中的问题是 SearchView ,因为我正在编译4.2.2我没有收到任何编译问题。

虽然在运行时SearchView在android 2.3.6中不可用,这导致整个活动出现noClassDef错误, 我在我的活动中添加了以下import语句来解决此问题: -

import android.support.v7.widget.SearchView;