11

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

MyProject
  - MyProjectSource
  - Libraries
     - ActionBarSherlock

我的项目是用 Gradle 构建的,可以毫无问题地编译。但是,在我的活动中包含来自 ActionBarSherlock 的组件的行中,Android Studio 将其标记为错误。

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

显然,这不是一个项目阻塞问题,但它确实会降低速度,无法利用 Android Studio 必须提供的全套工具。

提前感谢您的帮助。

4

9 回答 9

13

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

要在发布之前摆脱这些,请执行以下操作

  1. 使用清理您的项目Build > Clean Project
  2. 关闭你的 Android Studio
  3. 备份您的项目
  4. 删除项目中的所有 .iml 文件
  5. 删除 .idea 目录的内容
  6. 打开 Studio 并等待它完成与 gradle 的同步

还要验证您是否在File > Project Structure. 如果有任何错误提示“未添加依赖项”,请单击它并使用右侧的红色灯泡将它们添加到依赖项。

更新

Android Studio 0.4.3 现在在 Canary 频道上可用。

于 2014-01-21T18:12:04.780 回答
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 示例应用程序也会 标记语法错误,尽管它可以编译。

ABS的问题

但是,在另一台计算机上,一切正常。我想不出每种情况下的不同条件。

于 2014-01-21T15:13:55.540 回答
2

我不知道如何使用MavenCentral. 我按照这些步骤包含一个库

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

依赖{

编译---

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

  1. ./gradlew干净的
  2. 确保您的 Android Studio 已更新。
于 2014-01-21T16:07:40.897 回答
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 不理解的额外 sourceSet;尽量不要偏离 android gradle 插件示例太多。

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

于 2014-01-21T16:13:44.697 回答
2

通过链接,它对我有用。

1.) 从 android studio 左上角的菜单中选择 File 选项。2.)选择选项:“使缓存无效/重新启动..”它将打开一个对话框。3.) 单击带有选项的第一个按钮:“无效并重新启动” 4.) 它将关闭工作室并重新启动它。开始索引项目。它解决了我的问题

转到文件-> 使缓存无效/重新启动-> 无效并重新启动

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

于 2016-08-16T12:32:17.867 回答
0

我在 Android Studio 4.2 中遇到了这个问题,它可能会在 4.3 上修复

我注意到添加一些依赖项并没有将 classes.jar 附加到依赖项,因此 Gradle 可以识别所有内容,但 IDE 不能。要解决这个问题:

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

希望能帮助到你

于 2014-01-28T08:27:40.263 回答
0

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

于 2016-07-19T12:32:10.113 回答
0

Here i'm talking about android studio version v3.1.2 where this same issue happened.In later android studio version(above 3.0.1) this issue again rises. So, I solved this by going through few things and here is how

  1. Close android studio first

  2. Navigate to your Project Folder

  3. Delete .gradle and .idea folder (.gradle and .idea is hidden files. so make sure you tick Show Hidden Files in your File Explorer option to see these files

  4. Open your project in android studio now

    This Time another issue (unsupported module) will arise, but don't worry. I got you

  5. Goto File in android studio and hit Sync Project with Gradle Files

Tada..! you're done now!

于 2018-06-01T18:21:42.393 回答
0

Simplest Solution

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

是的!错误消失了...

前

后

于 2018-11-22T11:20:31.167 回答