小编Pre*_*mal的帖子

如何在NDK本机代码中获取断点并在Android Studio中调试本机代码?

我正在使用NDK开发Android应用程序.我有两个项目.一个是我的本机库,它使用NDK并生成.so文件.

我正在使用Android Studio,但是使用ndk-build禁用自动构建和启用构建.我使用的是Windows 7.

现在生成.so文件后,我复制了我的主应用程序项目中的那些,它也使用ndk-build编译JNI函数,我在其中调用我的库的函数.我希望到目前为止我很干净.如果没有,那么我会根据要求提供更多细节.

现在我正在使用Android Studio在设备中运行我的应用程序,我可以在java代码中设置断点并调试该代码,但我无法调试JNI调用以及我在单独项目中的本机代码.我需要在我的库代码中调试.有没有办法实现这个目标?

我见过VisualGDB,但付费.所以让我知道是否有任何替代方案来满足我的调试要求.我已经搜索了很多但没有得到任何具体的解决方案.

我可以看到Android Studio中的选项附加到android进程,我可以看到我的运行设备,但我不知道如何使用它,所以我可以通过本机库代码进行调试(这是在没有任何活动的单独项目中).

如果需要更多详细信息,请与我们联系

android android-ndk android-studio

22
推荐指数
2
解决办法
2万
查看次数

如何使用Swig将数组(java中的long数组)从Java传递给C++

我有样本.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++.

c++ java swig

5
推荐指数
1
解决办法
1835
查看次数

UITableVIew控制器采用全黑色

我要求以完全黑色显示UITableViewController.

我面临以下问题:

我将单元格的背景颜色设置为黑色.我只有四个条目,所以这四个cells是黑色和白色文本.但现在还显示其他空单元格,并且这些单元格为白色.

objective-c ios

2
推荐指数
1
解决办法
4023
查看次数

标签 统计

android ×1

android-ndk ×1

android-studio ×1

c++ ×1

ios ×1

java ×1

objective-c ×1

swig ×1