2013-09-28 29 views
11

我在Android Studio中有一个与Gradle编译的项目。 一般的文件结构Android Studio标记语法为错误,但是Gradle编译

MyProject 
    - MyProjectSource 
    - Libraries 
    - ActionBarSherlock 

我的项目是建立与摇篮,并且将编译没有问题。然而,在我的活动中,我从ActionBarSherlock中加入了一个组件,Android Studio将它标记为错误。

我注意到Android Studio也生成了.iml文件。所以我的问题是:在评估某种语法是否有效时,Android Studio会忽略Gradle构建吗?

很明显,这不是一个项目阻塞问题,但它确实速度慢,无法利用Android Studio提供的全套工具。

在此先感谢您的帮助。

+0

我有同样的问题。但是,我直接从Maven使用ABS。尽管它编译了,即使[ABS Gradle示例应用程序也会标记语法错误。 http://s17.postimg.org/40tt64min/Screen_Shot_2014_01_21_at_4_05_28_PM.png 但是,在另一台电脑中,一切正常。我无法想象每种情况下的不同情况。 – kikoso

+0

@kikoso你想添加ActionBarSherlock库在你的应用程序?请回答。 –

+0

你好@ZohraKhan。使用MavenCentral将ActionBarSherlock添加到我的项目中。 – kikoso

回答

12

这些都不是真正的错误,在Android的工作室(0.4.2)为解决这个符号的错误和固定下一个版本(0.4.3)。

摆脱这些,直到释放做以下

  1. 清洁使用Build > Clean Project
  2. 关闭项目
  3. 您的Android工作室
  4. 采取备份内删除所有.iml文件项目项目
  5. .idea目录
  6. 开放工作室和删除内容等待,直到它合作使用gradle同步完成同步

同时验证您是否看到File > Project Structure中的任何错误。如果有任何错误显示“未添加依赖项”,请点击右侧的红色灯泡并将其添加到依赖项中。

UPDATE

过Android Studio 0.4.3,请在Canary版现在。

+0

您可能不必遵循所有步骤;我在步骤4之后才能使用它。 –

+0

哦,太棒了,我回答了很久,之后可能会有很多工作室发生变化。它会帮助很多人,我也会很快更新我的答案。 – pyus13

4

更新:@laochiv,我发现手动清理文件夹.idea /库,然后点击“同步项目与Gradle文件”解决了这个问题。显然,这个同步不会删除元素,但保留旧元素并添加当前元素。可能是一个bug报告:)


我有同样的问题。但是,我直接从Maven使用ABS。

dependencies { 
    compile 'com.actionbarsherlock:actionbarsherlock:[email protected]' 
    compile 'com.android.support:support-v4:18.0.+' 
} 

即使编译ABS Gradle Sample application也会标记语法错误。

Problem with ABS

然而,在另一台计算机上一切工作完美。我无法想象每种情况下的不同情况。

+0

即使在稳定版本1.0.2的版本中,我也遇到了同样的问题:(但是感谢您的解决方案“删除库文件夹的内容并再次同步”修复了我的问题 – Hesam

2

我不知道如何使用MavenCentral添加库。我按照这些步骤包括一个库

  1. App_Name/App_Name/libs文件夹中添加库。
  2. App_Name/build.gradle添加此

依赖性{

编译---

编译的文件( '库/ fileName.jar')}

  • ./gradlew clean
  • 确保您的Android Studio已更新。
  • 2

    “Android Studio是否在评估某种语法是否有效时忽略gradle构建?”是。 Android Studio导入项目配置,但在编辑和保存时运行它自己的编译器(甚至可以将其更改为Eclipse ECJ编译器)。构建的真正权威是Gradle,AS仍处于测试阶段。您可以尝试运行gradle resync或关闭并重新导入项目。我不得不多次操纵AS,特别是在编辑build.gradle之后。

    编辑:我发现它更好地使用ActionBarSherlock作为gradle这个依赖,而不是一个库目录。

    compile 'com.actionbarsherlock:actionbarsherlock:[email protected]' 
    

    您将需要使用SDK管理器并安装本地maven存储库。

    但它有可能最终摆脱这些编译错误,只要你的build.gradle不会产生任何额外的sourceSets,由于不理解;尽量不要偏离android gradle插件示例。

    而且,我一直在运行AS的最新和最伟大的金丝雀更新。

    +0

    您也可以考虑加入G + ADT社区https:// plus .google.com/communities/114791428968349268860 –

    0

    我曾在Android Studio中4.2这一问题,它可能被固定在4.3

    我注意到,添加一些依赖的classes.jar没有连接到依赖,所以摇篮承认一切,但没有按IDE”吨。要解决这个问题:你的项目

    • 打开模块设置选择有错误对于依赖
    • 导航(弹出的底部)
    • 单击Add(+),以依赖你 - 项目/生成/爆炸-包/你的依赖性/ classes.jar
    • IDE应该承认的文件现在

    希望它可以帮助

  • 0

    我今天有这个,gradle更新/同步没有解决。但更新到最新版本的Android Studio 2.2更新5固定(在2.1)。

    1

    通过链接,它为我工作。

    1.)从android studio左上角的菜单中选择File选项。 2.)选择选项:“Invalidate Cache/Restart ..”它会打开一个对话框。 3.)点击第一个按钮,选项:“Invalidate and Restart” 4.)它将关闭工作室并重新启动它。开始编制项目索引。 它解决了我的问题

    转到文件 - >无效高速缓存/重新启动 - >废止和重新启动

    来源 https://www.youtube.com/watch?v=FX_gCTpqhwM