gpt4 book ai didi

Android 兼容性问题(Api 8、ActionbarSherlock)

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:06:01 25 4
gpt4 key购买 nike

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

See my other question for the setup.

我使用 Eclipse (Master-Detail-Flow) 生成了一个简单的 Activity 。我的项目目前只有一个 Activity 和一个 Fragment。到目前为止,我所做的只是用它们的 ABS 对应物替换父类(super class):

public class CouponListActivity extends SherlockFragmentActivity implements CouponListFragment.Callbacks {
...
}

public class CouponListFragment extends SherlockListFragment {
...
}

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

<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 的模拟器上失败

问题是我无法以任何有用的方式解释堆栈跟踪。我的代码似乎根本没有被触及......

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)

我可以从哪里开始寻找问题?让我知道是否可以提供更多信息。

更新:如果我排除 ABS 并简单地尝试创建一个在 API 8 中运行的 List-Activity/-Fragment 组合,我有完全相同的堆栈跟踪。Here is the project .

最佳答案

查看源代码后,您正在使用 simple_list_item_activated_1 资源。这是 Android API 级别 11 的新功能,因此您的问题的解决方案是。

onCreate 方法应该是这样的

@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,则需要创建它的本地副本。抱歉来晚了

关于Android 兼容性问题(Api 8、ActionbarSherlock),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11717334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com