将项目导入Android Studio有关ActionBarSherlock的问题

时间:2013-05-16 01:25:08

标签: java android intellij-idea actionbarsherlock android-studio

是否有其他人在使用ActionBarSherlock导入项目时遇到问题? 我总共有100个错误和17个警告。这在Eclipse完美无缺。我按照步骤创建了Gradle build file。在我尝试构建项目之前没有导入错误。

我还尝试重新下载ABS并将其替换为我的项目。

ABS和IntelliJ是否存在已知问题? (当然Android Studio现在基于)

以下是我看到的一些错误:

        java: ...
        Workspace/ActionBarSherlock/src/com/actionbarsherlock/app/SherlockFragment.java:4: cannot find symbol
        symbol  : class Fragment
        location: package android.support.v4.app

        java: ...  Workspace/ActionBarSherlock/src/com/actionbarsherlock/app/SherlockListFragment.java:4: cannot find symbol
        symbol  : class ListFragment
        location: package android.support.v4.app

        java: ...
        Workspace/ActionBarSherlock/src/com/actionbarsherlock/widget/SuggestionsAdapter.java:33:
        package android.support.v4.widget does not exist

任何帮助真的很感激

编辑:使用标准IntelliJ IDEA似乎没有问题。许多在线指南用于设置ABS。正如杰克所说,他实际上是在开发IntelliJ中的东西

以下是一个示例指南: http://android-wtf.com/2012/09/how-to-configure-actionbarsherlock-with-intellij-idea/

但是,我仍然不确定为什么它不适用于Android Studio

Edit2:解决方案在下面给出答案。简而言之:(我下载了abs最新版本,从我的项目中删除了旧版abs,然后file > import module...actionbarsherlock目录导入到我现有的项目中。 ,在我的特定情况下,我有一个junit编译错误的问题,需要删除\ test \ junit \)

4 个答案:

答案 0 :(得分:26)

似乎有很多关于将模块导入Android Studio的常见问题,而不仅仅是ActionBarSherlock,这个答案也可能会解决这些问题。 (但与junit相关的最后步骤特别适用于abs

以下步骤让我ActionBarSherlock无问题地运行。

1)在此处下载最新的ABS:http://actionbarsherlock.com/

2)提取ABS你应该在那里有一个名为“actionbarsherlock”的目录。将其复制到Android Studio工作区。并重命名为ActionBarSherlock (changed casing) - >我现在将我的Android Studio项目置于\*documents*\Android Workspace\而不是\Eclipse Workspace\

所以你现在应该有类似的东西:

\*documents*\Android Workspace\ActionBarSherlock\

与您的主要项目一起可能:

\*documents*\Android Workspace\TestProject\

3)打开Android Studio加载TestProject,然后转到File> Import Module..。现在导航到\*documents*\Android Workspace\ActionBarSherlock\下的ActionBarSherlock 单击“确定”,然后单击“完成”。它将询问您是否要为新模块设置依赖性(或者至少是我的设置)单击确定

4)此时编译时我在\ActionBarSherlock\test\抱怨Junit时遇到错误。我只是在项目视图下从我的ABS模块中删除了\Test\目录。 Right click \test\ > Delete...。您还可以包含junit jar文件,但我认为没必要

5)您现在应该能够无错误地编译

希望这有助于某人。

基本上,我需要重新下载一个完全新的ABS,删除我的旧项目的ABS(可能已经很老了)然后导入模块......

答案 1 :(得分:6)

这对我有用..

首先,按照wired00提供的答案

我从这里做了一些改变。

我通过Eclipse中的Generate Gradle构建文件在ActionBarSherlock库项目中创建了一个build.gradle文件。

编辑build.gradle(对于ActioBarSherlock库项目),在依赖项中添加一行{} compile files('libs/android-support-v4.jar')

编辑build.gradle(对于我的项目),删除compile files('libs/android-support-v4.jar')并添加compile project(':abs') abs应为ActionBarSherlock库项目名称。

编辑settings.gradle,添加,':abs'

删除除ActionBarSherlock库项目中的文件之外的android-support-v4.jar文件

答案 2 :(得分:2)

我遇到了类似的问题,但是由于一个单独的问题,我无法下载最新的ActionBarShelock来修复有问题的网络所描述的问题。

如果您需要坚持使用现有的ABS版本,请查看这是否适用于您:

  1. 点击文件 - >项目结构。
  2. 您应该在模块列表中看到'ActionBarSherlock',单击它。
  3. 点击'Dependencies'标签,很可能你没有android支持库v4。
  4. 点击底部的“+”按钮,添加android-support-v4作为依赖项。如果您从Eclipse导入项目,则Android Studio可能已将支持JAR文件作为库导入,您可以直接使用它。否则,您可能需要使用“jars或目录”选项并从目录中选择支持jar文件。
  5. 如果您的主模块或其他模块也使用支持库,如果您收到“已添加DEX”错误,则可能需要将“编译”设置更改为“已提供”。
  6. 你现在应该可以编译你的ABS mobule了。如果你得到'hamcrest'或'junit'编译错误,你可以删除ABS项目中的'test'文件夹,如有线电视提到的那样。

答案 3 :(得分:0)

我也遇到了同样的问题。我甚至按照类似于导入ABS库的步骤操作。但我仍然得到同样的错误。最后我解决了这个问题。 解决方案:执行类似导入ABS库的步骤后,

  1. 重新编译您的项目(右键单击您的项目,然后单击'编译模块'YourApp“')
  2. 重新编译库项目(右键单击Library项目并单击'Compile Module'库“')
  3. 就是这样..