簡體   English   中英

Maven-Android-Plugin 3.8.2導致ActionBarSherlock問題

[英]Maven-Android-Plugin 3.8.2 causes ActionBarSherlock issues

我已經成為快樂的ABS用戶很多年了,但是自從上次更新到maven-android-plugin以來,我無法讓構建的應用程序在沒有本機Action Bar的設備上運行...即Honeycomb之前的任何東西。

我得到的例外是;

01-11 15:47:04.413: E/AndroidRuntime(1479):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1768)
01-11 15:47:04.413: E/AndroidRuntime(1479):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1784)
01-11 15:47:04.413: E/AndroidRuntime(1479):     at android.app.ActivityThread.access$1500(ActivityThread.java:123)
01-11 15:47:04.413: E/AndroidRuntime(1479):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:939)
01-11 15:47:04.413: E/AndroidRuntime(1479):     at android.os.Handler.dispatchMessage(Handler.java:99)
01-11 15:47:04.413: E/AndroidRuntime(1479):     at android.os.Looper.loop(Looper.java:130)
01-11 15:47:04.413: E/AndroidRuntime(1479):     at android.app.ActivityThread.main(ActivityThread.java:3835)
01-11 15:47:04.413: E/AndroidRuntime(1479):     at java.lang.reflect.Method.invokeNative(Native Method)
01-11 15:47:04.413: E/AndroidRuntime(1479):     at java.lang.reflect.Method.invoke(Method.java:507)
01-11 15:47:04.413: E/AndroidRuntime(1479):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847)
01-11 15:47:04.413: E/AndroidRuntime(1479):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)
01-11 15:47:04.413: E/AndroidRuntime(1479):     at dalvik.system.NativeStart.main(Native Method)
01-11 15:47:04.413: E/AndroidRuntime(1479): Caused by: java.lang.RuntimeException: Couldn't find content container view
01-11 15:47:04.413: E/AndroidRuntime(1479):     at com.actionbarsherlock.internal.ActionBarSherlockCompat.generateLayout(ActionBarSherlockCompat.java:1015)
01-11 15:47:04.413: E/AndroidRuntime(1479):     at com.actionbarsherlock.internal.ActionBarSherlockCompat.installDecor(ActionBarSherlockCompat.java:902)
01-11 15:47:04.413: E/AndroidRuntime(1479):     at com.actionbarsherlock.internal.ActionBarSherlockCompat.setContentView(ActionBarSherlockCompat.java:836)
01-11 15:47:04.413: E/AndroidRuntime(1479):     at com.actionbarsherlock.app.SherlockFragmentActivity.setContentView(SherlockFragmentActivity.java:261)
01-11 15:47:04.413: E/AndroidRuntime(1479):     at com.oceanlife.core.activity.AbstractThemedActionBarActivity.onCreate(AbstractThemedActionBarActivity.java:32)
01-11 15:47:04.413: E/AndroidRuntime(1479):     at com.oceanlife.activity.SpotListingActivity.onCreate(SpotListingActivity.java:119)
01-11 15:47:04.413: E/AndroidRuntime(1479):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
01-11 15:47:04.413: E/AndroidRuntime(1479):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1722)
01-11 15:47:04.413: E/AndroidRuntime(1479):     ... 11 more

我懷疑我對android-maven-plugin v3.8.2的升級以及對Maven 3.1.1的必需升級導致了此問題(而不是ABS本身)...所以我的問題是,我該如何診斷出什么問題了? 有趣的是,在調試導致問題ActionBarSherlockCompat#generateLayout的代碼部分時,可以正確找到布局,但不能找到基礎ID,請查看以下內聯注釋;

if (DEBUG) Log.d(TAG, "[generateLayout] using screen XML " + mActivity.getResources().getString(layoutResource));
  View in = mActivity.getLayoutInflater().inflate(layoutResource, null);
  mDecor.addView(in, new ViewGroup.LayoutParams(MATCH_PARENT, MATCH_PARENT));

  // mDecor not null and the orginal resource contains an id called "abs__content"
  ViewGroup contentParent = (ViewGroup)mDecor.findViewById(R.id.abs__content);
  if (contentParent == null) {
      throw new RuntimeException("Couldn't find content container view");
  }

具有此ID的子視圖唯一的異常是它具有以下名稱空間;

com.actionbarsherlock.internal.nineoldandroids.widget.NineFrameLayout

非常感謝在我的姜餅設備上恢復工作的任何幫助。 對於SDK 14+ armada,這是我最新發布的Gingerbread。 先感謝您。


更新:我已經確認這是在v3.8.2升級到maven-android-plugin的直接效果(以及相應的3.1.1 Maven升級)。

您應該在3.8.1中使用ActionBarSherlock的apklib,在3.8.2中使用aar。 我們目前正在努力為這兩個版本在3.8.3方面的良好合作提供支持...

暫無
暫無

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

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