Android studio 2.1.1 无法识别 stdio.h 但运行良好

Android studio 2.1.1 doesn't recognise stdio.h but runs it fine

网站上也有类似的问题,但其中大部分来自 Android Studio 2.1 之前的问题,显然这似乎已为除我之外的其他所有人解决了这个问题。

我正在使用 Android Studio 2.1.1, JDK 1.8, NDK 1.2 rc1, gradle-experimental 0.7.0 alpha4 插件,但我仍然遇到 Android Studio 拒绝识别 stdio.h, jni.h 等任何 C 库函数的问题,并且等等。

问题是像 #include <stdio.h> 这样的 header 声明都有 header 的错误颜色的名称,当我将鼠标悬停在上面时,它提供的唯一解释是 "cannot find stdio.h" 例如。然后当然像 printf 和 system 之类的东西都以错误颜色显示

但是,它在 C 代码中运行得非常好。这不是最大的障碍,但我很想实际使用 Android Studio 的功能,而不必猜测我是否正在编写正确的代码。

事实证明,在我的应用程序的 build.gradle 文件中,我在 defaultConfig 对象中有 NDK 设置,而不是直接在 android.ndk 下,这导致了这个问题。所以请仔细检查您的 build.gradle 文件!

作为参考,固定的 build.gradle 文件:

apply plugin: 'com.android.model.application'

model {
    android {
        compileSdkVersion 22
        buildToolsVersion "22.0.1"

        defaultConfig {
            applicationId "meow"
        }

        buildTypes {
            release {
                minifyEnabled false
                proguardFiles.add(file('proguard-rules.pro'))
            }
        }

        ndk {
            moduleName "mao"
            ldLibs.add("log")
        }
    }
}