无法 运行 Android 项目:Gradle 项目刷新失败

Unable to Run Android Project: Gradle Project Refresh Failed

我运行宁

OSX 10.9.5
javac 1.8.0_11

我在使用 Android Studio 时遇到了很多问题(每次我尝试构建项目时它都会陷入死循环并停止响应),所以我完全删除了它(使用说明 here) 以及我的 sdk 文件夹。

我重新安装了 Android Studio,然后进行了更新(1.0.2 Build #AI135.1653844,2014 年 12 月 18 日构建) 为 API 19、20 和 21 以及支持库安装了 recommended SDK packages and images

我使用所有默认设置创建了一个新项目,并且能够 运行 Nexus 5 上的 Hello World 项目 API 已经在我的 AVD 中的 21 x86 模拟器图像。

接下来,我尝试从版本控制中检查一个需要 JDK 7+ 的项目。一些 运行dom 谷歌搜索发现 https://github.com/wikimedia/apps-android-wikipedia.git 并且在模拟器中 运行 也没有问题。

然后我导入了我实际上试图从 github 构建的项目(我很确定它适用于其他人,但我不想命名它)并经历了相同的过程.首先,Gradle 同步失败,因为未安装构建工具 19.1.0。它也不是作为一个 Android 项目开始的:我收到一条关于它检测到 Android 框架的消息,并且需要进行配置(一个带有“Android”和“Android”复选框的对话框“AndroidManifest.xml”)。我配置了项目,安装了 19.1.0 构建工具,并重新同步 gradle。 gradle 构建成功,有 9 个警告(“...找不到注释方法...”)。然后我尝试 运行 项目,并且 gradle 构建失败了一堆

UNEXPECTED TOP-LEVEL EXCEPTION:
    com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000)

按照说明 here 我打开文件 > 项目结构并检查我的 JDK 位置实际上指向 1.8 安装(/Library/Java/JavaVirtualMachines/jdk1.8.0_11。 jdk/Contents/Home, 作为 /usr/libexec/java_home returns)

在模块的 build.gradle 中,我添加了

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

在 android 节中并进行了同步。它要求我重新加载项目,所以我做了。

那有同样的错误,所以我进入了顶层构建。 gradle,并添加了

android {
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

并进行了另一次同步,但由于未找到 android() DSL 方法而失败。使用说明 here 我将 gradle 类路径从 1.0.0rc4 更新为 1.0.0(包装器中的 url 已经是 2.2.1)以同样的方式失败,所以我采纳了 Android Studio 提供的其他建议,应用 gradle 插件。我注意到模块的 build.gradle 有一个插件 com.android.application。我将该插件应用到顶层 build.gradle 并同步。

然后失败并显示超级有用的消息 'Gradle project refresh failed. Error: A problem occurred configuring root project...' 没有其他文本,Gradle 控制台中也没有任何内容。

更多谷歌搜索,我发现 this 建议我应该尝试以 1.7 为目标,所以我将四个 1_8 更改为 1_7。再次,没有运气。配置根项目时出现同样的问题。

我真的没主意了。有什么建议吗?

仅将 compileOptions 放在应用程序模块 build.gradle 文件中。如果要使用 Java 1.8,请使用 gradle-retrolamdba 转换字节码,使其在 Android 上运行。如果要使用 Java 1.7,请确保将 Project Structure 设置下的 SDK Location 设置为 1.7 jdk.