Android studio编译报错

Android studio 新建一个NativeC++工程,总是编译出错
D:\AndroidStudioProjects\MyDemo\app\src\main\cpp\native-lib.cpp:1:1: error: expected unqualified-id
D:\AndroidStudioProjects\MyDemo\app\src\main\cpp\native-lib.cpp:2:15: error: source file is not valid UTF-8
这几个问题分别指向#include <jni.h> #include 这两个头文件
而且project那里多了个MyDemo.app的目录,里面有个main,main里面又包含三个include文件夹
是不是之前导入过别的工程,是不是自动改变了啥配置,搞不懂啊,百度根本找不到原因,求帮忙分析

img

ctmd,终于知道了,ndk的安装目录不能存在空格,我tm装到program file目录下了

【以下回答由 GPT 生成】

根据提供的信息,有以下几个可能导致编译错误的原因:

  1. 编码问题:错误提示中提到了源文件不是有效的UTF-8编码。这可能是由于文件编码格式不正确导致的。你可以尝试将native-lib.cpp文件的编码格式更改为UTF-8,并确保文件内容没有不可见的特殊字符。

  2. 头文件引用问题:错误提示中指向了两个头文件 #include <jni.h> 和 #include,这可能是由于头文件路径配置错误或者缺少头文件导致的。你可以检查是否正确地添加了jni.h头文件路径,如果没有添加,需要按照以下步骤进行配置:

  3. 在app模块下的build.gradle文件中,确保ndk配置正确,例如: android { ... defaultConfig { ... externalNativeBuild { cmake { cppFlags "-frtti -fexceptions" abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' } } } ... }
  4. 在 CMakeLists.txt 文件中,确保正确引用了jni.h头文件,例如: # CMakeLists.txt ... include_directories(${ANDROID_NDK}/sources/android/native_app_glue) ... target_include_directories(native-lib PRIVATE ${ANDROID_NDK}/sources/android/native_app_glue) target_link_libraries(native-lib android log) ...

  5. 项目目录问题:MyDemo.app目录和main/include文件夹可能是由于导入其他项目或配置错误导致的。为了解决这个问题,你可以尝试删除不必要的目录,并确保项目目录结构正确。具体步骤如下:

  6. 在项目中导航到MyDemo.app目录,并删除该目录。
  7. 检查main文件夹并确保它只包含与项目相关的文件和文件夹。
  8. 在项目文件中检查include文件夹,并确认只有项目所需的头文件在其中。

希望以上方法能帮助解决问题,如果还有其他问题,请提供更多信息以便更好地帮助您解决。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^