Maven-Android-Plugin 3.8.2导致ActionBarSherlock问题

时间:2014-01-11 16:00:02

标签: android maven actionbarsherlock android-maven-plugin

我多年来一直是一个快乐的ABS用户,但是自从我上次更新到maven-android-plugin以来,我无法在没有原生Action Bar的设备上运行构建的应用程序...即。蜂窝前的任何事情。

我得到的例外是;

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

让我的构建重新开始在Gingerbread设备上工作的任何帮助都非常感谢。对于SDK 14+ armada,这是我最后一次发布到Gingerbread。提前谢谢。


更新:我已经确认这是在v3.8.2升级到 maven-android-plugin 的直接影响(以及相应的3.1.1 Maven升级)。

1 个答案:

答案 0 :(得分:0)

你应该使用带有3.8.1的ActionBarSherlock的apklib和带有3.8.2的aar。我们目前正试图在我们的工作中为3.8.3 ...

提供良好的支持