0

我最近从 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

4

2 回答 2

1

所以我没有使用默认的android构建配置,而是使用了android maven插件并做了一个mvn android:deploy-dependencies和android:run,问题就消失了。

在我只是为 intellij 使用默认的 android 构建配置之前,考虑到我首先使用 android maven 插件来管理我的依赖项,现在回想起来这似乎不是正确的方法。

希望这可以帮助某人。

PS intellij-idea 摇滚!

于 2012-09-18T23:51:55.440 回答
1

我为这个问题找到了另一种解决方法,它的工作速度要快得多。在 Android facet config 中,将资源处理从"Run 'process-resources' Maven task before Make"更改为"Compile resources by IDE"。见附件截图。在此更改之后,所有 android 版本都可以正常快速运行

构面配置

于 2012-09-28T08:01:36.787 回答