我最近从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**
请参阅完整的异常堆栈跟踪和activity / manifest / 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
答案 0 :(得分:1)
因此,我没有使用默认的android构建配置,而是使用了android maven插件并执行了mvn android:deploy-dependencies和android:run,问题就消失了。
在我刚刚使用intellij的默认android构建配置之前,现在回顾看起来并不是正确的方法,因为我正在使用android maven插件来管理我的依赖项。
希望这有助于某人。
P.S。 intellij-idea rocks!
答案 1 :(得分:1)
我发现此问题的另一种解决方法更快。在Android facet配置中更改资源处理从“运行'流程资源'Maven任务之前”到“按IDE编译资源”。查看附件中的屏幕截图在此更改之后,所有Android版本的所有工作正常并且快速