alibaba / freeline

A super fast build tool for Android, an alternative to Instant Run
https://www.freelinebuild.com/
BSD 3-Clause "New" or "Revised" License
5.48k stars 623 forks source link

点击freeline按钮时提示 It's not an android Gradle project Currently #959

Open hiperioncn opened 6 years ago

hiperioncn commented 6 years ago

运行环境: Android Studio 3.0.1 Build #AI-171.4443003, built on November 10, 2017 JRE: 1.8.0_152-release-915-b08 x86_64 JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o Mac OS X 10.13.2

Freeline 0.8.8 android gradle plugin 3.0.1 gradle 4.2.1

Freeline Plugin 1.1.4

使用插件执行freeline时提示 It's not an android Gradle project Currently?

image

hiperioncn commented 6 years ago

经过对freeline studio plugin的分析,是因为无法检测到工程中的build.gradle文件,但实际该文件是存在的。 检测的机制如下:以下逐层递进 1.通过FreelineUtils.java 的checkInstall方法中212行的条件判断的。 2.FreelineStatus的getGradleBuildFiles获取build.gradle文件数量,

  1. GradleUtil.getAllGradleFile(project)方法, 4.FilenameIndex.getVirtualFilesByName(project, GradleConstants.DEFAULT_SCRIPT_NAME, GlobalSearchScope.allScope(project)); 5.FilenameIndex的 public static Collection getVirtualFilesByName(final Project project, final String name, final GlobalSearchScope scope) { return FileBasedIndex.getInstance().getContainingFiles(NAME, name, scope); }
  2. FileBasedIndex的getContainingFiles方法,

解决方法,点击androidstudio->file->Invalidate cache and restart