【发布时间】:2012-08-14 01:21:39
【问题描述】:
如果有帮助,我也在使用 SherlockActionBar。
触发此异常的行是:setContentView(R.layout.activity);
我正在使用的课程extends SherlockFragmentActivity
应用名称为 com.testapp.androidapp
类是:com.testapp.androidapp.SwipeyTabsActivity。
我已经在几部手机上试用过这个应用程序,除了在这台设备 Nexus S 上之外,其他所有设备都可以使用。虽然所有设备都报告了 Android 的实际版本号(4.0.1、2.3.3),但这个是唯一具有命名版本 (IceCreamSandwich) 的设备。
问题是,如何确保不会发生此错误?如果有帮助,我不需要效果 (EdgeEffect)。
这些是我的导入:
import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.SherlockFragmentActivity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.SystemClock;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.Window;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
import com.actionbarsherlock.view.MenuItem.OnActionExpandListener;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.inputmethod.InputMethodManager;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
这个异常的总结是:
引起:java.lang.NoClassDefFoundError: android.widget.EdgeEffect 在 android.support.v4.widget.EdgeEffectCompatIcs.newEdgeEffect(EdgeEffectCompatIcs.java:30) 在 android.support.v4.widget.EdgeEffectCompat$EdgeEffectIcsImpl.newEdgeEffect(EdgeEffectCompat.java:92) 在 android.support.v4.widget.EdgeEffectCompat.(EdgeEffectCompat.java:133) 在 android.support.v4.view.ViewPager.initViewPager(ViewPager.java:290)
完整的 StackTrace:
java.lang.RuntimeException:无法启动活动 组件信息{com.testapp.androidapp/com.testapp.androidapp.SwipeyTabsActivity}: android.view.InflateException:二进制 XML 文件第 22 行:错误 膨胀类 android.support.v4.view.ViewPager 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1859) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1875) 在 android.app.ActivityThread.access$600(ActivityThread.java:122) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1062) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:137) 在 android.app.ActivityThread.main(ActivityThread.java:4215) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method.java:511) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 在 dalvik.system.NativeStart.main(Native Method) 原因: android.view.InflateException:二进制 XML 文件第 22 行:错误 膨胀类 android.support.v4.view.ViewPager 在 android.view.LayoutInflater.createView(LayoutInflater.java:606) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:739) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:489) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:396) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:352) 在 com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:244) 在 com.actionbarsherlock.internal.ActionBarSherlockNative.setContentView(ActionBarSherlockNative.java:119) 在 com.actionbarsherlock.app.SherlockFragmentActivity.setContentView(SherlockFragmentActivity.java:251) 在 com.testapp.androidapp.SwipeyTabsActivity.onCreate(SwipeyTabsActivity.java:112) 在 android.app.Activity.performCreate(Activity.java:4434) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1823) ... 11 更多原因:java.lang.reflect.InvocationTargetException 在 java.lang.reflect.Constructor.constructNative(Native Method) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:417) 在 android.view.LayoutInflater.createView(LayoutInflater.java:586) ... 23 更多原因:java.lang.NoClassDefFoundError: android.widget.EdgeEffect 在 android.support.v4.widget.EdgeEffectCompatIcs.newEdgeEffect(EdgeEffectCompatIcs.java:30) 在 android.support.v4.widget.EdgeEffectCompat$EdgeEffectIcsImpl.newEdgeEffect(EdgeEffectCompat.java:92) 在 android.support.v4.widget.EdgeEffectCompat.(EdgeEffectCompat.java:133) 在 android.support.v4.view.ViewPager.initViewPager(ViewPager.java:290) 在 android.support.v4.view.ViewPager.(ViewPager.java:277) ... 26 更多 android.view.InflateException: Binary XML file line #22: Error 膨胀类 android.support.v4.view.ViewPager 在 android.view.LayoutInflater.createView(LayoutInflater.java:606) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:739) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:489) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:396) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:352) 在 com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:244) 在 com.actionbarsherlock.internal.ActionBarSherlockNative.setContentView(ActionBarSherlockNative.java:119) 在 com.actionbarsherlock.app.SherlockFragmentActivity.setContentView(SherlockFragmentActivity.java:251) 在 com.testapp.androidapp.SwipeyTabsActivity.onCreate(SwipeyTabsActivity.java:112) 在 android.app.Activity.performCreate(Activity.java:4434) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1823) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1875) 在 android.app.ActivityThread.access$600(ActivityThread.java:122) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1062) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:137) 在 android.app.ActivityThread.main(ActivityThread.java:4215) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method.java:511) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 在 dalvik.system.NativeStart.main(Native Method) 原因: java.lang.reflect.InvocationTargetException 在 java.lang.reflect.Constructor.constructNative(Native Method) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:417) 在 android.view.LayoutInflater.createView(LayoutInflater.java:586) ... 23 更多原因:java.lang.NoClassDefFoundError: android.widget.EdgeEffect 在 android.support.v4.widget.EdgeEffectCompatIcs.newEdgeEffect(EdgeEffectCompatIcs.java:30) 在 android.support.v4.widget.EdgeEffectCompat$EdgeEffectIcsImpl.newEdgeEffect(EdgeEffectCompat.java:92) 在 android.support.v4.widget.EdgeEffectCompat.(EdgeEffectCompat.java:133) 在 android.support.v4.view.ViewPager.initViewPager(ViewPager.java:290) 在 android.support.v4.view.ViewPager.(ViewPager.java:277) ... 还有 26 个 java.lang.reflect.InvocationTargetException 在 java.lang.reflect.Constructor.constructNative(Native Method) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:417) 在 android.view.LayoutInflater.createView(LayoutInflater.java:586) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:739) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:489) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:396) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:352) 在 com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:244) 在 com.actionbarsherlock.internal.ActionBarSherlockNative.setContentView(ActionBarSherlockNative.java:119) 在 com.actionbarsherlock.app.SherlockFragmentActivity.setContentView(SherlockFragmentActivity.java:251) 在 com.testapp.androidapp.SwipeyTabsActivity.onCreate(SwipeyTabsActivity.java:112) 在 android.app.Activity.performCreate(Activity.java:4434) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1823) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1875) 在 android.app.ActivityThread.access$600(ActivityThread.java:122) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1062) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:137) 在 android.app.ActivityThread.main(ActivityThread.java:4215) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method.java:511) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 在 dalvik.system.NativeStart.main(Native Method) 原因: java.lang.NoClassDefFoundError: android.widget.EdgeEffect 在 android.support.v4.widget.EdgeEffectCompatIcs.newEdgeEffect(EdgeEffectCompatIcs.java:30) 在 android.support.v4.widget.EdgeEffectCompat$EdgeEffectIcsImpl.newEdgeEffect(EdgeEffectCompat.java:92) 在 android.support.v4.widget.EdgeEffectCompat.(EdgeEffectCompat.java:133) 在 android.support.v4.view.ViewPager.initViewPager(ViewPager.java:290) 在 android.support.v4.view.ViewPager.(ViewPager.java:277) ... 还有 26 个 java.lang.NoClassDefFoundError: android.widget.EdgeEffect at android.support.v4.widget.EdgeEffectCompatIcs.newEdgeEffect(EdgeEffectCompatIcs.java:30) 在 android.support.v4.widget.EdgeEffectCompat$EdgeEffectIcsImpl.newEdgeEffect(EdgeEffectCompat.java:92) 在 android.support.v4.widget.EdgeEffectCompat.(EdgeEffectCompat.java:133) 在 android.support.v4.view.ViewPager.initViewPager(ViewPager.java:290) 在 android.support.v4.view.ViewPager.(ViewPager.java:277) 在 java.lang.reflect.Constructor.constructNative(Native Method) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:417) 在 android.view.LayoutInflater.createView(LayoutInflater.java:586) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:739) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:489) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:396) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:352) 在 com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:244) 在 com.actionbarsherlock.internal.ActionBarSherlockNative.setContentView(ActionBarSherlockNative.java:119) 在 com.actionbarsherlock.app.SherlockFragmentActivity.setContentView(SherlockFragmentActivity.java:251) 在 com.testapp.androidapp.SwipeyTabsActivity.onCreate(SwipeyTabsActivity.java:112) 在 android.app.Activity.performCreate(Activity.java:4434) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1823) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1875) 在 android.app.ActivityThread.access$600(ActivityThread.java:122) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1062) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:137) 在 android.app.ActivityThread.main(ActivityThread.java:4215) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method.java:511) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 在 dalvik.system.NativeStart.main(Native Method)
【问题讨论】: