问题: Your project contains C++ files but it is not using a supported native build system.解决方法

本文解决在Android Studio中因JNI配置不当导致的编译错误。通过正确配置CMake和Gradle,确保项目能够识别并编译JNI层代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题出现:

将eclipse项目导入android studio后由于项目中有用到jni层中的东西,在将一系列可见错误解决后运行APP出现了标题中所述问题。

1、网上最常见的解决方案

参考链接
一、在项目的gradle.properties添加

android.useDeprecatedNdk=true

二、在module的build.gradle(Module:app)的buildTypes上面添加sourceSets属性

sourceSets {
main {
jni.srcDirs = []
}
}

buildTypes{
}

可是软件开发时与时俱进的,上述解决方案中的方法已过时,第一步中的语法被废除

于是乎仔细看了一下问题描述,猜测可能是由于没有将项目使用gradle脚本与c++中的cmake脚本进行连接。之前只是把cmake文件复制进了项目。
于是乎寻找该问题的解决方法

2、为项目添加c++支持

参考链接

为项目添加c++支持不仅可以在创建项目的时候添加,还可以为已有项目添加c++支持。上面解决的是 android.mk 及下图所示使用ndk-bulid 编译
在这里插入图片描述
而笔者发现使用cmake也行,于是下面贴出步骤
基本与上面步骤一致
原因:

     1. 没有创建Android.mk文件进行库文件配置;

    2. 没有把Android.mk文件添加到项目中;

解决方法:

1.切换到Android视图
在这里插入图片描述

2.选择项目或模块,右击,选择Link C++ Project with Gradle

在这里插入图片描述
3.在Build System中选择cmake,并在Project Path添加CmakeLists.txt路径
在这里插入图片描述
添加完成后再运行,就不会报错了

参考https://blog.youkuaiyun.com/gengkui9897/article/details/86350598
https://blog.youkuaiyun.com/SweetTool/article/details/71436575

<think>好的,用户遇到了系统报错“DirectX 12 is not supported”,想解决这个问题,并且寻找替代-dx12或-d3d12参数的方法。首先,我需要根据提供的引用信息来分析可能的原因和解决方案。 首先,引用[1]提到,出现DirectX12被禁用的情况可能是显卡不支持或者驱动不支持。引用[2]则具体列举了支持DX12的显卡型号,比如NVIDIA GTX 750 Ti及以上和AMD Radeon R9 290及以上。因此,第一步应该是检查用户的显卡型号是否符合要求。如果显卡本身不支持,那可能需要升级硬件,或者寻找替代的图形API参数。 接下来,引用[3]是关于DXR基础教程的,这可能涉及到光线追踪技术,不过用户的问题更基础,可能暂时不需要考虑这个。但需要注意,如果用户尝试使用DXR相关功能,可能需要更高版本的显卡支持。 用户可能的问题步骤应该是:检查显卡型号是否支持DX12 → 更新显卡驱动 → 检查Windows版本是否支持 → 尝试替代参数如-d3d11或-vulkan。如果这些步骤都无效,可能需要考虑硬件升级或使用兼容模式。 另外,用户提到的替代参数,比如使用DirectX 11或Vulkan,这需要确保应用程序支持这些API,并在启动参数中正确设置。比如在游戏启动选项中添加“-dx11”或“-vulkan”。 还需要注意,某些情况下,即使用户的显卡支持DX12,但系统版本过旧(如Windows 10早期版本),也可能导致不支持。因此检查系统更新也是必要的一环。 总结下来,解决方案的步骤应该是:确认硬件支持 → 更新驱动 → 更新系统 → 使用替代API参数 → 考虑硬件升级。需要将这些步骤清晰地传达给用户,并确保每一步的操作方法具体可行。</think>### 解决“DirectX 12 is not supported问题的分步指南 #### 1. **检查显卡硬件支持** - **操作步骤**: 1. 打开“设备管理器”(右键点击开始菜单 → 选择“设备管理器”)。 2. 展开“显示适配器”,查看显卡型号。 3. 对比支持DirectX 12的显卡型号: - *NVIDIA*:GTX 750 Ti及以上(如GTX 900/1000/2000/3000系列)[^2]。 - *AMD*:Radeon R9 290及以上(如RX 400/500/6000系列)[^2]。 - **若显卡不支持**:需更换显卡或使用兼容模式运行程序。 #### 2. **更新显卡驱动** - **操作步骤**: 1. 访问显卡官网下载最新驱动: - NVIDIA:[GeForce驱动下载](https://www.nvidia.cn/Download/index.aspx) - AMD:[Radeon驱动下载](https://www.amd.com/zh-hans/support) 2. 安装驱动后重启系统。 - **注意**:Windows Update可能无法提供最新驱动,建议手动安装[^1]。 #### 3. **检查Windows系统版本** - **要求**:Windows 10(版本2004及以上)或Windows 11。 - **操作步骤**: 1. 按`Win + R`输入`winver`查看系统版本。 2. 若版本过低,前往“设置 → 更新和安全 → Windows更新”升级系统。 #### 4. **使用替代图形API参数** - 若程序支持多图形API,可尝试以下参数: - **DirectX 11**:`-dx11` 或 `-d3d11`。 - **Vulkan**:`-vulkan`(需显卡支持,如NVIDIA GTX 600系列及以上)。 - **OpenGL**:`-opengl`(兼容性较好,但性能可能较低)。 - **示例**:在Steam游戏启动选项中添加参数: ``` -dx11 ``` #### 5. **验证DirectX 12功能** - **操作步骤**: 1. 按`Win + R`输入`dxdiag`,打开DirectX诊断工具。 2. 在“系统”标签页查看“DirectX版本”是否为12。 3. 在“显示”标签页检查“功能级别”是否包含`12_1`或更高。 #### 6. **特殊情况处理** - **虚拟机或集成显卡**: - 部分集成显卡(如Intel HD 500系列以下)不支持DX12。 - 虚拟机默认不直通显卡硬件,需配置GPU虚拟化(如VMware的3D加速)。 - **开发者调试**: - 使用工具[DirectX Capabilities Viewer](https://www.nirsoft.net/utils/dxcap.html)检测详细支持特性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Erorrs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值