Android Studio将语法标记为错误,但是gradle编译

时间:2013-09-28 04:08:50

标签: android gradle android-studio

我在Android Studio中有一个用Gradle编译的项目。 一般文件结构是

MyProject
  - MyProjectSource
  - Libraries
     - ActionBarSherlock

我的项目是使用Gradle构建的,编译时没有问题。但是,在我的活动中我包含ActionBarSherlock组件的行中,Android Studio将其标记为错误。

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

显然,这不是项目阻止问题,但它确实减慢了速度,无法利用Android Studio提供的全套工具。

提前感谢您的帮助。

8 个答案:

答案 0 :(得分:13)

实际上这些并非错误,这是Android studio(0.4.2)中用于解析符号并在下一版本(0.4.3)中修复的错误。

要解除这些,直到发布时执行以下操作

  1. 使用Build > Clean Project
  2. 清理项目
  3. 关闭Android Studio
  4. 备份项目
  5. 删除项目中的所有.iml文件
  6. 删除.idea目录的内容
  7. 打开Studio并等待它与gradle完成同步
  8. 同时验证您是否在File > Project Structure中看到任何错误。如果有任何错误说“未添加依赖”,请点击它并在右侧使用红色灯泡将它们添加到依赖项。

    <强>更新

    现在可以在Canary Channel上使用Android Studio 0.4.3。

答案 1 :(得分:4)

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


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

dependencies {
    compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
    compile 'com.android.support:support-v4:18.0.+'
}

即使ABS Gradle Sample application标记语法错误,尽管它会编译。

Problem with ABS

但是,在另一台计算机中,一切都运行良好。我无法想到每种情况下的不同情况。

答案 2 :(得分:2)

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

  1. App_Name/App_Name/libs文件夹中添加库。
  2. App_Name/build.gradle添加此
  3. 依赖项{

    编译---

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

    1. ./gradlew干净
    2. 确保您的Android工作室已更新。

答案 3 :(得分:2)

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

编辑:我发现将ActionBarSherlock用作gradle依赖项而不是库目录会更好。

compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'

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

但是有可能最终摆脱这些编译错误,只要你的build.gradle没有创建AS不理解的任何额外的sourceSets;尽量不要偏离android gradle插件示例。

另外,我一直在运行AS的Canary更新以获取最新和最好的。

答案 4 :(得分:1)

这里我正在谈论android studio 版本v3.1.2 ,同样的问题也发生了。在后来的android studio版本(3.0.1以上)中,这个问题再次出现。所以,我通过一些事情来解决这个问题,这就是

  1. 首先关闭android studio

  2. 导航到您的项目文件夹

  3. 删除 .gradle .idea 文件夹(.gradle和.idea是隐藏文件。所以请务必勾选显示隐藏文件在您的文件资源管理器选项中查看这些文件

  4. 立即在android studio中打开您的项目

    此时会出现另一个问题(不支持的模块),但不要担心。我找到了你

  5. 在Android工作室中转到文件并点击使用Gradle文件同步项目

  6. 多田..!你现在完成了!

答案 5 :(得分:0)

我在Android Studio 4.2中遇到此问题,可能会在4.3

上修复

我注意到添加一些依赖项没有将classes.jar附加到依赖项,因此Gradle会识别除IDE之外的所有内容。解决它:

  • 打开项目的模块设置
  • 选择包含错误的依赖项
  • 单击该依赖项的添加(+)(弹出窗口底部)
  • 导航到your-project / build / explosion-bundles / your-dependency / classes.jar
  • IDE现在应该识别文件

希望有所帮助

答案 6 :(得分:0)

今天我有这个,并且gradle update / sync没有解决。但更新到最新版本的Android Studio 2.2更新5已修复(在2.1上)。

答案 7 :(得分:0)

最简单的解决方案

  • 注释/删除显示语法错误和同步项目的依赖项。
  • 取消注释/再次添加并同步项目。

是的!错误消失了...

之前

Before

之后

After