首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓兼容性问题(Api 8,ActionbarSherlock)

安卓兼容性问题(Api 8,ActionbarSherlock)
EN

Stack Overflow用户
提问于 2012-07-30 07:48:32
回答 1查看 1.3K关注 0票数 4

我正在尝试为我的项目建立一个基本结构,它应该运行在API级别8-16上,使用google位置服务和ActionBarSherlock。

请看我的另一个问题。

我用Eclipse (主细节流)生成了一个简单的活动。我的项目目前只有一个活动和一个片段。到目前为止,我所做的就是用它们的ABS类替换超类:

代码语言:javascript
复制
public class CouponListActivity extends SherlockFragmentActivity implements CouponListFragment.Callbacks {
...
}

代码语言:javascript
复制
public class CouponListFragment extends SherlockListFragment {
...
}

这是我使用的唯一的布局元素

代码语言:javascript
复制
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:name="....activity.CouponListFragment"
    android:id="@+id/coupon_list"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginLeft="16dp"
    android:layout_marginRight="16dp"
    tools:context=".CouponListActivity" />

在API 16上的仿真器上运行良好,但在另一个带有API 8的模拟器上失败。

问题是,我不能用任何有用的方法来解释堆栈跟踪。我的代码看起来一点也不感动.

代码语言:javascript
复制
java.lang.NullPointerException
    at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:355)
    at android.widget.ArrayAdapter.getView(ArrayAdapter.java:323)
    at android.widget.AbsListView.obtainView(AbsListView.java:1315)
    at android.widget.ListView.makeAndAddView(ListView.java:1727)
    at android.widget.ListView.fillDown(ListView.java:652)
    at android.widget.ListView.fillFromTop(ListView.java:709)
    at android.widget.ListView.layoutChildren(ListView.java:1580)
    at android.widget.AbsListView.onLayout(AbsListView.java:1147)
    at android.view.View.layout(View.java:7035)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
    at android.view.View.layout(View.java:7035)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
    at android.view.View.layout(View.java:7035)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
    at android.view.View.layout(View.java:7035)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
    at android.view.View.layout(View.java:7035)
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1249)
    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1125)
    at android.widget.LinearLayout.onLayout(LinearLayout.java:1042)
    at android.view.View.layout(View.java:7035)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
    at android.view.View.layout(View.java:7035)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
    at android.view.View.layout(View.java:7035)
    at android.view.ViewRoot.performTraversals(ViewRoot.java:1045)
    at android.view.ViewRoot.handleMessage(ViewRoot.java:1727)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:123)
    at android.app.ActivityThread.main(ActivityThread.java:4627)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:521)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)

我从哪里开始找这个问题?如果我能提供更多的信息,请告诉我。

Update:如果我排除了ABS,只需创建一个在API 8. 这是一个项目中运行的列表-活动/ -Fragment组合,我就有完全相同的堆栈跟踪。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-30 11:19:41

在查看源代码之后,您将使用simple_list_item_activated_1资源。这对于Android级别11来说是新的,所以您的问题的解决方案是。

onCreate方法应该如下所示

代码语言:javascript
复制
@Override
 public void onCreate(final Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setListAdapter(new ArrayAdapter<DummyContent.DummyItem>(getActivity(), android.R.layout.simple_list_item_activated_1,android.R.id.text1, DummyContent.ITEMS));
 }

因为这对于API级别11来说是新的,所以无论是否使用ActionBarSherlock,您都会得到相同的错误。如果您想使用simple_list_item_activated_1,那么您需要创建它的本地副本。抱歉来迟了

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11717334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档