C Android NDK:功能是否会导致致命信号11(SIGSEGV)?

C Android NDK:功能是否会导致致命信号11(SIGSEGV)?,c,android-ndk,C,Android Ndk,我正在尝试移植一个c应用程序,我得到以下结果 04-18 18:39:05.325:D/DJNI(4973):开始主厄运 04-18 18:39:05.335:D/DJNI(4973):空检查已完成 04-18 18:39:05.335:A/libc(4973):0x00000000(代码=1)处的致命信号11(SIGSEGV),线程4998(线程-141) 当然,这似乎是一个问题,这些行在这里 jni_printf("Starting Main APP"); if(clen

我正在尝试移植一个c应用程序,我得到以下结果

04-18 18:39:05.325:D/DJNI(4973):开始主厄运

04-18 18:39:05.335:D/DJNI(4973):空检查已完成

04-18 18:39:05.335:A/libc(4973):0x00000000(代码=1)处的致命信号11(SIGSEGV),线程4998(线程-141)

当然,这似乎是一个问题,这些行在这里

jni_printf("Starting Main APP");
if(clen == NULL)
        jni_printf("clen is null");
if(args == NULL)
        jni_printf("Args is null");
jni_printf("Null Check completed");
main(clen, args);
jni_printf("Start completed");
因此,我假设问题在于主函数。是这样吗?如果无法对主函数实现进行优化,是否会抛出此错误

我很困惑,因为它编译和链接都很好,但我仍然得到这个错误。据我所知(我在那里的日志还不太好用gdb),这一定是主函数

其他类别

dir1/i\u mainsdl.h

#ifndef __I_MAINSDL__
#define __I_MAINSDL__
extern int main(int argc, char **argv);
#endif
dir1/i_main.c

#include "i_mainsdl.h"
...
int main(int argc, char **argv)
{
  lprintf(LO_ALWAYS, "Starting the main function");
}

您正在检查您的变量是否为“==”NULL“(带引号),您可能是指“==NULL”,我想我会解决这个问题,看看它是否会给我带来其他任何东西…相同的结果编辑文本…您是否构建应用程序或共享库?我构建了一个。因此,它包含在我的Android应用程序中。该代码是Android活动的JNI接口的一部分。因此,在apk中使用编译的lib进行Android活动。