【问题标题】:Android Studio: This file not part of the project, but the project builds successfullyAndroid Studio:这个文件不是项目的一部分,但是项目构建成功
【发布时间】:2019-04-24 09:04:56
【问题描述】:

我有一个奇怪的问题,突然出现在android studio中。我创建了一个新的 cpp 文件,并将其包含在 Android.mk 中。然后我同步了项目。但是,android studio 仍然抱怨该文件不是项目的一部分,我需要同步,但是整个项目构建成功。

同样,如果我从 Android.mk 中删除它没有抱怨的其他旧文件之一,然后重新同步然后尝试构建项目,正如预期的那样构建失败,但 android studio 不会抱怨该文件不再是项目的一部分。

不知何故,突然间,android studio 编辑器无法正确识别哪些文件已同步并且是项目的一部分,但在编译期间一切正常。

有人知道如何解决这个烦人的问题吗?我尝试过干净的项目,使缓存无效/重新启动以及更新 android studio 没有运气(AS 版本 3.4)。

【问题讨论】:

  • 你的 Android Studio 版本是多少。我也有类似的问题...
  • Android Studio 3.4版
  • 这个答案能解决你的问题吗?我想知道这是否是当前最新 NDK 的 AS 3.4 的问题。

标签: android-studio


【解决方案1】:

我使用了 Build > Refresh Linked C++ Projects 菜单,它成功了。

【讨论】:

    【解决方案2】:

    问题环境

    • Android Studio 3.5 RC 2
    • gradle-4.10-all
    • com.android.tools.build:gradle:3.2.1

    解决方案

    更新至:
    - gradle-5.5.1-all
    - com.android.tools.build:gradle:3.4.2

    步骤

    从项目根运行(注意这必须先完成):

    ./gradlew wrapper --gradle-version 5.5.1 --distribution-type all
    

    在根build.gradle 文件中:

    buildscript {
        //...
        dependencies {
            classpath("com.android.tools.build:gradle:3.4.2")
            //...
        }
    }
    

    【讨论】:

    • 我将其更新为 gradle-5.4.1-all 和 com.android.tools.build:gradle:3.5.3,也可以使用
    【解决方案3】:

    此时 Android Studio 4.0.1 和最新的 gradle(6.1.1?)也有同样的问题。在我退出 Android Studio 并删除项目主目录中的 .gradle 和 .idea 文件夹,并在受影响的模块目录中删除 .cxx 和 build 目录后,问题就消失了。我不确定哪个真的有帮助,但很可能删除 .grade 和/或 .idea

    【讨论】:

      【解决方案4】:

      我遇到了类似的问题。和你一样,我什么都试过了。

      • 无效并重新启动:不起作用
      • 手动删除文件夹:.gradle .idea .ndkbuild 等不起作用
      • 清理、重建、链接 C++ 文件:不起作用

      对我有帮助的一件事是:我更改了 NDK 版本。我编译,然后得到一个编译错误(没关系,因为它是错误的 NDK 版本),然后我恢复到原来的 NDK。这似乎解决了问题,然而,它又回来了。

      我的解决方案是将 Android Studio 重置为出厂设置。如果您使用的是 Linux,则可以从删除这些文件夹开始:

      rm -rf ~/.android
      
      rm -rf ~/.AndroidStudio3.4
      

      然后你下载并运行你的 Android Studio,而不是从任何地方导入任何东西。

      我怀疑问题是由我安装的插件之一引起的。

      不时备份这两个文件夹并在必要时从那里重新加载它们可能是个好主意。

      编辑:在添加更多 .cpp 文件后,在上述解决方案之后,我的问题似乎仍然存在。看到之后,我搜索了该弹出窗口的来源。随之而来的是“此文件不是项目的一部分...”弹出窗口是从 ndk-build 推送的。 (类名:NewCppSourceNotificationProvider - StaleCppProjectNotificationPanel)。我尝试了什么,到目前为止什么有效;我使用带有 NDK 版本 r19c(稳定版)的 Android Studio 3.5 Canary13。希望对您有所帮助。

      【讨论】:

      • 我也找到了类似的解决方案,我删除了所有.android文件夹并下载了一个新的android studio(3.2版),现在它可以工作了。
      • 更改 NDK 版本,构建,然后将其改回为我工作。我相信这是一个合理的解决方案,因为重新安装 Android Studio 成本太高而且似乎仍然无法正常工作。
      • macos 有什么解决方案吗?
      【解决方案5】:

      我有类似的问题,可能是gradle版本和gradle插件版本的兼容性问题,因为我的解决方案是替换旧配置

      // build.gradle
      classpath 'com.android.tools.build:gradle:3.2.1'
      ...
      // gradle-wrapper.properties
      distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
      

      通过将 gradle 版本从 4.6 更改为 4.10.1 来使用以下新版本。

      // build.gradle
      classpath 'com.android.tools.build:gradle:3.2.1'
      ...
      // gradle-wrapper.properties
      distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip
      

      之后,Android Studio 可以索引和跟踪我在项目中的新 cpp 文件。

      【讨论】:

        【解决方案6】:

        通过更新我的“com.android.tools.build:gradle”来解决这个问题

        【讨论】:

          【解决方案7】:

          我在 artic fox 版本 2020.3.1 中修复了更新 'com.android.tools.build:gradle'

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-08-20
            • 1970-01-01
            • 2019-09-13
            相关资源
            最近更新 更多