我正在使用NDK开发Android应用程序.我有两个项目.一个是我的本机库,它使用NDK并生成.so文件.
我正在使用Android Studio,但是使用ndk-build禁用自动构建和启用构建.我使用的是Windows 7.
现在生成.so文件后,我复制了我的主应用程序项目中的那些,它也使用ndk-build编译JNI函数,我在其中调用我的库的函数.我希望到目前为止我很干净.如果没有,那么我会根据要求提供更多细节.
现在我正在使用Android Studio在设备中运行我的应用程序,我可以在java代码中设置断点并调试该代码,但我无法调试JNI调用以及我在单独项目中的本机代码.我需要在我的库代码中调试.有没有办法实现这个目标?
我见过VisualGDB,但付费.所以让我知道是否有任何替代方案来满足我的调试要求.我已经搜索了很多但没有得到任何具体的解决方案.
我可以看到Android Studio中的选项附加到android进程,我可以看到我的运行设备,但我不知道如何使用它,所以我可以通过本机库代码进行调试(这是在没有任何活动的单独项目中).
如果需要更多详细信息,请与我们联系
我有样本.h文件,如下所示:
class Test
{
public:
void SelectValues(long long values[])
};
Run Code Online (Sandbox Code Playgroud)
我使用SWIG并从.i文件下面创建了JNI接口
%module MyLib
%include "carrays.i"
%array_functions(long long, long_long_array )
%{
#include "Test.h"
%}
/* Let's just grab the original header file here */
%include <windows.i> /*This line is used for calling conventions*/
% include "Test.h"
Run Code Online (Sandbox Code Playgroud)
当我创建Java方法时,它创建如下:
public void SelectValues(SWIGTYPE_p_long_long includeKeys)
Run Code Online (Sandbox Code Playgroud)
同样对于JNI文件,它只是采用参数,jlongArray但只是简单jlong.由于这个问题,我不能创建长的数组,long[]={1L,2L}并将其传递给Java方法以上调用适当的JNI方法.
我希望SWIG以这样的方式生成接口,我可以将上面提到的数组传递给我的C++方法.
我已经阅读了这个问题,但它没有帮助我看到如何将数组从Java传递给C++.
我要求以完全黑色显示UITableViewController.
我面临以下问题:
我将单元格的背景颜色设置为黑色.我只有四个条目,所以这四个cells是黑色和白色文本.但现在还显示其他空单元格,并且这些单元格为白色.