簡體   English   中英

Android兼容性問題(Api 8,ActionbarSherlock)

[英]Android compatibility issues (Api 8, ActionbarSherlock)

我正在嘗試為我的項目設置一個基本結構,它應該在API級別8-16上運行,使用谷歌位置服務和ActionBarSherlock。

請參閱我的其他問題進行設置。

我用Eclipse(Master-Detail-Flow)生成了一個簡單的活動。 我的項目目前只有一個Activity和一個Fragment。 到目前為止,我所做的就是用他們的ABS同行取代超級班:

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組合,我就擁有完全相同的堆棧跟蹤。 這是項目

查看源代碼后,您正在使用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則需要創建它的本地副本。 對不起,來晚了

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM