Android 设置ImageView上的填充崩溃活动

Android 设置ImageView上的填充崩溃活动,android,nullpointerexception,imageview,android-actionbar-compat,Android,Nullpointerexception,Imageview,Android Actionbar Compat,我使用actionbarcompat在pre-honeycomp设备上也有一个actionbar 由于主页图标和actionbar标题之间没有空格,我将其添加到我的活动中: // add padding to the right of home item ImageView view = (ImageView)findViewById(android.R.id.home); view.setPadding(0, 0, 10, 0); 实际上,第二行(setPadding)导致了崩溃 它在果冻豆

我使用actionbarcompat在pre-honeycomp设备上也有一个actionbar

由于主页图标和actionbar标题之间没有空格,我将其添加到我的活动中:

// add padding to the right of home item
ImageView view = (ImageView)findViewById(android.R.id.home);
view.setPadding(0, 0, 10, 0);
实际上,第二行(setPadding)导致了崩溃

它在果冻豆设备上运行良好。但在Android 2.3设备上运行时,我发现一个空指针异常

这是碰撞的logcat输出:

12-29 11:44:36.968: E/AndroidRuntime(329): FATAL EXCEPTION: main
12-29 11:44:36.968: E/AndroidRuntime(329): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.GetRichOrDieSmoking/com.GetRichOrDieSmoking.MainScreen}: java.lang.NullPointerException
12-29 11:44:36.968: E/AndroidRuntime(329):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
12-29 11:44:36.968: E/AndroidRuntime(329):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
12-29 11:44:36.968: E/AndroidRuntime(329):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
12-29 11:44:36.968: E/AndroidRuntime(329):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
12-29 11:44:36.968: E/AndroidRuntime(329):  at android.os.Handler.dispatchMessage(Handler.java:99)
12-29 11:44:36.968: E/AndroidRuntime(329):  at android.os.Looper.loop(Looper.java:123)
12-29 11:44:36.968: E/AndroidRuntime(329):  at android.app.ActivityThread.main(ActivityThread.java:3683)
12-29 11:44:36.968: E/AndroidRuntime(329):  at java.lang.reflect.Method.invokeNative(Native Method)
12-29 11:44:36.968: E/AndroidRuntime(329):  at java.lang.reflect.Method.invoke(Method.java:507)
12-29 11:44:36.968: E/AndroidRuntime(329):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
12-29 11:44:36.968: E/AndroidRuntime(329):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
12-29 11:44:36.968: E/AndroidRuntime(329):  at dalvik.system.NativeStart.main(Native Method)
12-29 11:44:36.968: E/AndroidRuntime(329): Caused by: java.lang.NullPointerException
12-29 11:44:36.968: E/AndroidRuntime(329):  at com.GetRichOrDieSmoking.MainScreen.onCreate(MainScreen.java:463)
12-29 11:44:36.968: E/AndroidRuntime(329):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
12-29 11:44:36.968: E/AndroidRuntime(329):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
12-29 11:44:36.968: E/AndroidRuntime(329):  ... 11 more

仅在API级别11中引入。因此,该视图无法在Android 2.3中创建。因此,在下面的一行中,当您尝试在空视图上设置填充时,您会得到
NullPointerException
,您可能因为API级别而无法访问主视图

为操作栏使用第三方库以支持低API级别


我强烈建议使用

谢谢你的信息。你知道如何在pre-honeycomp设备上处理视图吗?@tobias定义你自己的id,而不是依赖android提供的id。然后在为自己的R.java导入包之后使用
R.id.home
。并更改为ImageView=(ImageView)findViewById(R.id.home);但这在eclipse中给了我一个错误:“home无法解析或不是一个字段”啊,我知道你指的是actionbarcompat的home图标。抱歉,声明您自己的id是不可能的。因此无法处理该视图?我以前考虑过actionBarSherlock,但由于谷歌提供了actionbarcompat,我认为这是正确的方法。不,没关系,他们甚至在谷歌io视频中自己推荐了它。actionBarSherlock提供了更多的灵活性,并且实际上扩展了google的灵活性,所以为什么不使用它呢。。。