升级到Android Studio 3.0 Beta 1时的Gradle错误

39

注意:这似乎是 Android 插件的问题。请查看相关问题的评论。

在构建项目时,我遇到以下 Gradle 错误:

Gradle sync failed: Cause: java.lang.NullPointerException
            at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:98)
            at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77)
            at sun.nio.fs.WindowsPath.parse(WindowsPath.java:94)
            at sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:255)
            at java.nio.file.Paths.get(Paths.java:84)
            at com.android.build.gradle.internal.scope.BuildOutput.getOutputPath(BuildOutput.java:222)
            at com.android.build.gradle.internal.scope.BuildOutputs.lambda$load$2(BuildOutputs.java:243)
            at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
            at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1376)
            at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
            at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
            at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
            ...

另外需要注意的是,我不得不手动设置jdk位置,因为如果我使用捆绑的jdk,则gradle守护程序将无法启动,并抱怨没有处于预期上下文中(它期望捆绑的上下文,而实际得到了外部上下文)。

这个配置在canary 9中可以工作(使用捆绑的jdk)。


已验证问题:https://issuetracker.google.com/issues/64525949https://issuetracker.google.com/issues/64526384https://issuetracker.google.com/issues/64526867 - der_Fidelis
5
这可能有所帮助 https://androidstudio.googleblog.com/2017/08/android-studio-30-beta-1.html - adriendenat
当你发布它时,我会标记你的答案,我会继续做这件事,以便问题被标记为已回答。 - der_Fidelis
对于Windows用户,分别是:./gradlew clean./gradlew assemble - MatPag
7个回答

52

感谢@Grsmto的贡献

根据这篇博客文章,您需要打开终端并按顺序执行以下命令:

更新

现在解决方法更简单了,你只需要进入Build -> Clean Project然后同步即可。

Windows

gradlew clean

gradlew assemble

Linux/Mac

./gradlew clean

./gradlew assemble

然后同步项目。


尝试了上述方法,但是当我运行gradlew clean时,出现以下错误:
无法解析配置文件中的所有文件“:classpath”。 找不到com.android.tools.build:gradle:3.0.0-beta1。 在以下位置搜索: https://jcenter.bintray.com/com/android/tools/build/gradle/3.0.0-beta1/gradle-3.0.0-beta1.pom https://jcenter.bintray.com/com/android/tools/build/gradle/3.0.0-beta1/gradle-3.0.0-beta1.jar
- Michael Marsella
1
@MichaelMarsella 请确保在您的项目gradle文件中添加了google()allprojects { repositories { ... } } - der_Fidelis
1
@der_Fidelis,感谢您的帮助。我按照Google在此处提供的说明(https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html#apply_plugin)在buildscript { repositories { ... }下添加了google(),问题得到了解决。 - Michael Marsella

14
https://androidstudio.googleblog.com/2017/08/android-studio-30-beta-1.html得知,如果您的现有Android Studio项目正在使用Android插件3.0.0 alpha版(如3.0.0-alpha9),则在将项目迁移到Android插件3.0.0-beta1并同步项目时,可能会遇到以下错误: Gradle project refresh failed。您可以按照以下步骤解决此问题:

选择菜单栏中的Build > Clean Project,对于每个项目,您只需要执行此操作一次。然后,您可以通过点击工具栏中的Sync Project来与Gradle同步项目文件。

更多细节请参见发布说明。https://androidstudio.googleblog.com/2017/08/android-studio-30-beta-1.html

愉快的编码!


7
这是一个已知的问题:在此文档中有记录
只需简单地执行以下操作(无需输入命令):
  • 从菜单栏中选择Build > Clean Project

  • 然后通过点击工具栏中的Sync Project按钮与Gradle同步项目文件。


2
Gradle sync failed: Cause: java.lang.NullPointerException
            at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:98)
            at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77)
            at sun.nio.fs.WindowsPath.parse(WindowsPath.java:94)
            at sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:255)
            at java.nio.file.Paths.get(Paths.java:84)

阅读官方发布指南菜单栏选择Build > Clean项目来解决此问题 - 您只需要为每个项目执行此操作一次。然后,您可以通过点击工具栏中的同步项目Gradle同步文件。 注意: 3.0 Beta 1或3.0 Beta 2

程序或应用程序的早期版本,包含大部分主要功能,但尚未完全完成。有时仅向一组人或公众发布这些版本,以进行测试和反馈。


0

如果“clean”、“build”等操作都没有起作用,那么请前往“Build”菜单并选择“Make Project”。这对我来说解决了错误。

虽然在此之前最好执行一次“clean”和“build”操作。


0
如果在您的Java+Kotlin混合项目中,cleansync无法正常工作,那么您可能需要更改Kotlin版本以与IDE提供的Kotlin版本保持一致。从Android Studio 3.0 Beta 2开始,该版本为1.1.3-2。我当时使用的是1.1.4,发现我必须将其降回去,执行cleansync,然后才能使其再次正常工作,此时我可以切换回1.1.4

-1
已知问题:如果您有一个使用 Android 插件 3.0.0 alpha 版本(例如 3.0.0-alpha9)的现有 Android Studio 项目,并且您将其迁移到 Android 插件 3.0.0 beta1 并同步您的项目,您可能会收到以下错误:Gradle 项目刷新失败。
要解决此问题,请选择“Build > Clean Project”菜单栏中的选项 - 您只需要为每个项目执行此操作一次。然后,您可以通过单击工具栏中的 Sync Project 将项目文件与 Gradle 同步。
有关更多详细信息,请参阅发布说明。https://androidstudio.googleblog.com/2017/08/android-studio-30-beta-1.html

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接