Error: Your project contains C++ files but it is not using a supported native build system

我在编写有关JNI的代码的时候回报这个错误,我在网上搜了相关的资料后,找到了一篇文章解决了这个问题,点击这里查看这篇文章,我在照着这篇文章尝试的时候,总有一些错误,现在我把自己详细的解决流程贴出来,供大家参考。 
首先在工程目录下的gradle.properties文件的末尾加上一句:Android.useDeprecatedNdk=true 
如图: 
这里写图片描述 
然后再在文件build.gradle(Module:app)里面的buildTypes类中添加一个这样的方法

sourceSets {
    main {
        jni.srcDirs = []
    }
}
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5

如下图所示 
这里写图片描述 
这样就可以编译成功了

### 解决方案 当遇到 `RuntimeError: Could not locate a supported Microsoft Visual C++ installation` 的错误时,这通常是由于系统未正确安装或配置 Microsoft Visual C++ 编译工具所致。以下是全面的解决方案: #### 1. 安装 Microsoft C++ Build Tools 根据提示信息[^3],Python 需要 **Microsoft Visual C++ 14.0 或更高版本** 才能正常构建某些依赖项。可以通过以下链接下载并安装所需的工具: - 下载地址:[Microsoft C++ Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/) - 在安装过程中,请确保勾选了“使用 C++ 的桌面开发”选项以及相关的工作负载。 如果磁盘空间不足导致安装失败,可以尝试清理不必要的文件或扩展硬盘容量后再重试。 #### 2. 清理冲突的注册表键值 有时旧版 Visual Studio 的残留设置会干扰新版本的安装过程。按照以下步骤清除可能存在的冲突: - 按下 `Win + R` 组合键,输入 `regedit` 并回车。 - 导航到路径 `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\Setup`。 - 查找名为 `SharedInstallation` 的键值,并右键将其删除。 - 重启计算机后重新运行 Visual Studio Installer 进行安装。 此操作有助于修复因共享组件锁定而导致的安装问题[^3]。 #### 3. 校验 CUDA 版本一致性 对于涉及 GPU 加速的应用程序(如 nvdiffrast 和 tiny-cuda-nn),CUDA 的兼容性至关重要。如果主机系统和虚拟环境中使用的 CUDA 版本不同,则可能导致类似的错误消息。建议采取以下措施: - 确认当前操作系统已安装的 CUDA 工具链版本。 - 使用命令 `nvcc --version` 检查虚拟环境中的 CUDA 编译器版本是否一致。 - 如果存在差异,请调整至统一版本以消除潜在冲突[^4]。 #### 4. 设置正确的环境变量 即使完成了软件安装,仍需验证 PATH 环境变量中包含了指向 MSVC 的有效路径。具体方法如下: - 打开高级系统设置对话框,在“环境变量”部分编辑 System Variables 中的 Path 条目。 - 添加类似 `C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\<version>\bin\HostX64\x64` 的条目(实际路径取决于所选的具体产品及其版本号)。 完成以上更改之后记得关闭再打开任何正在运行的终端窗口以便应用新的配置。 --- ### 示例代码片段 为了测试安装后的效果,可尝试运行一段简单的 Python 脚本来触发相关模块初始化逻辑: ```python import subprocess try: result = subprocess.run(['cl'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, text=True) if 'not recognized' in result.stdout.lower(): raise Exception('Compiler unavailable') except FileNotFoundError as e: print(f'MSVC Compiler missing! Error details:{e}') else: print('MSVC detected successfully.') ``` 该脚本利用子进程调用 CL.EXE 文件来判断是否存在有效的微软编译器实例;如果没有发现问题则表明基础架构搭建完毕。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值