Open imkerberos opened 4 years ago
CMAKE 工程可以在 project 区显示 CPP 源代码的文件, xmake-gradle 没有显示.
这个暂时支持不了,不能跟cmake比,人家是google官方给直接内置支持的,肯定跟as整合的更好些,而xmake-gradle只是作为gradle插件的方式扩展支持,目前暂时没精力去支持这个,先这么凑合着用吧,如果你有兴趣可以提个pr帮忙支持上。
CMAKE 工程在调试状态断点工作正常, xmake-gradle 编译的工程断点工作不正常.
这个我可以看看,如果支持起来不麻烦,我会考虑支持上,如果太花时间,那就只能先这样了。。
显示这个倒是可以凑合, 如果调试不行就很麻烦了. 另外, 对于 gradle java 之类的东西一点都不懂, 估计很难能提 PR 了.
调试那个我可以先看看 不行也没办法,实在是忙不过来这么多东西,我通常也都是print调的 很少会去断点。
我试了下确实不行,稍微看了看,似乎android studio跟gradle/build-tools里面内置的cmake/ndkBuild两边是配合同步的
gradle tools内置的cmake模块会去生成一些配置文件到.cxx目录,尤其是下面这个文件:
./nativelib/.cxx/cmake/debug/arm64-v8a/android_gradle_build.json
ndkbuild也去写一些配置到.cxx目录提供给as加载。
当android studio点击调试的时候,会判断如果是cmake模式,就回去加载这个文件,读取一些so库相关的信息来支持断点调试。
而xmake模式下,xmake不会去写入.cxx,即使模拟写入这些文件,Android Studio判断当前不是cmake,也不会去从.cxx加载任何文件。
所以目前看,是android studio/gradle两端同时配合原生支持的cmake/ndkbuild来实现的断点调试。
而xmake是通过gradle插件的方式提供,只能影响gradle,没法扰Android Studio,除非再整个Android Studio的插件,去hack调试这块。
有没有更省事的支持方式,我暂时还不清楚,理论上只要花时间肯定能支持上,但是目前我可能没法花太多精力在这块上,如果你有兴趣,可以帮忙研究下。
我估计源码目录显示也跟.cxx里面配置相关,但是可能也需要as配合支持
我最近也有些忙, 先 Open 着吧, 等忙完了我仔细看看.
描述问题
使用 xmake-gradle 编译 JNI, 在 build.gradle, xmake.lua 中配置 debug 模式, 在 jni 的 c++ 代码中设置的断点无效. 对比 CMAKE 工程:
期待的结果
错误信息
无错误信息.
相关环境
OS: MacOSX Catalina 10.15.4 xmake: 2.3.3 xmake-gradle: 1.0.7 android-studio: 3.6.3 android-ndk: