我最近从 eclipse 切换到了 intellij,到目前为止,这是一次很棒的体验,我真的很喜欢它。但是,我遇到了一个奇怪的问题,我一直在用头撞墙。我正在尝试在我的应用程序中使用 ViewPagerIndicator、ActionBarSherlock、RoboSherlock 和 RoboGuice 以及其他一些常见框架。在我添加 VPI 之前一切正常。
基本上,当将 ViewPagerIndicator 依赖项添加到我的项目时,它会破坏 3.0 之前的设备的应用程序(在 3.0+ 上运行良好)。
该错误相当令人困惑,因为当 VPI apklib 存在时,似乎与 ABS 兼容主题没有被拾取(请注意,我在清单中使用的是 ABS 兼容主题)。
>09-18 10:33:15.986: ERROR/COM.IRIE.TASTEBUD/ObserverMethodListener.java:34(509): main java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at roboguice.event.eventListener.ObserverMethodListener.onEvent(ObserverMethodListener.java:32)
at roboguice.event.EventManager.fire(EventManager.java:130)
at com.github.rtyley.android.sherlock.roboguice.activity.RoboSherlockActivity.onCreate(RoboSherlockActivity.java:63)
at com.irie.tastebud.view.activity.MainActivity.onCreate(MainActivity.java:38)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
当我更深入地查看跟踪时,我看到了以下内容(即使我使用的是 sherlock 主题):
Caused by: java.lang.IllegalStateException: You must use Theme.Sherlock, Theme.Sherlock.Light, Theme.Sherlock.Light.DarkActionBar, or a derivative. at com.actionbarsherlock.internal.ActionBarSherlockCompat.generateLayout(ActionBarSherlockCompat.java:1007) at com.actionbarsherlock.internal.ActionBarSherlockCompat.installDecor(ActionBarSherlockCompat.java:919) at com.actionbarsherlock.internal.ActionBarSherlockCompat.setContentView(ActionBarSherlockCompat.java:853) at com.actionbarsherlock.app.SherlockActivity.setContentView(SherlockActivity.java:218) at roboguice.inject.ContentViewListener.optionallySetContentView(ContentViewListener.java:21) ... 19 more**
请参阅完整的异常堆栈跟踪和活动/清单/pom.xml 代码@https ://gist.github.com/3743646。
再一次 - 当添加 VPI 项目作为 Maven 依赖项时,这只发生在 3.0 之前的设备上。如果我删除 VPI - 该应用程序在 2.2+ 设备上运行良好。
据我所知,我的 Pom.xml 几乎与 Android Bootstrap 应用程序完全一样,它在 2.2+ 上运行良好。
我的猜测是我有某种依赖配置问题。我对 maven 和 intellij 非常熟悉,所以很难解决问题。
我不确定是否有其他人看到过这种行为,或者我是否犯了新手错误。任何帮助表示赞赏 - 如果我解决了这个问题,我会用答案更新这个问题。
提前感谢大家,如果我在这篇文章中违反了任何 stackoverflow 礼节,我们深表歉意。
编辑:发现潜在的相关问题@ http://youtrack.jetbrains.com/issue/IDEA-90719