致命信号11(SIGSEGV)位于0x00000000(代码= 1) - PhoneGap

时间:2012-12-24 15:46:46

标签: java android eclipse cordova

我现在使用PhoneGap开发Android应用程序。 最近,当我尝试在HTML页面之间切换时,应用程序关闭,并且在LogCat中出现以下错误:

12-24 15:43:39.237: A/libc(23631): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 23631 (.example.app)

我在Google上搜索了一下这个错误,我的理解是它与设备的内存有关。我发现了一些解决方案,但并没有让我意识到我是如何在PhoneGap中实现它们的。

之前有没有人遇到此错误? 我该怎么做才能解决问题?

谢谢:)

9 个答案:

答案 0 :(得分:44)

如果您已编写(或正在使用)插件,而该插件又通过NDK使用本机C / C ++代码,则可能表示该本机代码存在错误。

否则,这是您正在测试的设备或仿真器的固件中的错误。

如果您可以在仿真器,带有原始ROM的Nexus设备或不同制造商的各种设备上重现这一点,则可能是Android本身的一个错误。在这种情况下,请创建一个可以重现错误的示例项目,并将其与整个堆栈跟踪一起发布到Android操作系统问题跟踪器http://b.android.com

如果您只是在一台设备或一台第三方ROM上遇到此问题,则可能是一个更具体的错误 - 您最好的选择是联系设备制造商或ROM发布商以解决您的症状。

答案 1 :(得分:16)

我在xhdpi Nexus 7上遇到了类似的错误,但在我的旧手机上工作正常。在使用大量小按钮更新大型GridView时出现了问题。

A/libc(7410): Fatal signal 11 (SIGSEGV) at 0xbe8a8000 (code=1), thread 7410

我不认为这是你的问题,因为你的电脑是0,我的电脑是0xbe8a8000,但它很容易尝试,它解决了我的问题,所以我要发布它以防万一有人来这里寻找SEGV解决方案。
关于类似问题的https://github.com/MasDennis/Rajawali/issues/313进行了讨论,有人提到他们遇到了同样的问题并关闭了硬件加速功能。它很容易尝试,它解决了我的问题 在Android清单应用程序中添加:

android:hardwareAccelerated="false"

希望这有助于其他人...

答案 2 :(得分:11)

我在我正在处理的项目上遇到了同样的问题。事实证明,我正在加载大量图像和声音,导致应用程序在尝试实例化Activity时耗尽内存。您的程序是否使用了大量内存密集型资产?你可以减少他们的尺寸吗?

就我而言,LogCat在Fatal signal 11 (SIGSEGV)行之前有一个绿色的堆栈跟踪(INFO级别日志记录)。堆栈跟踪是OutOfMemoryException,而应用正在加载我正在启动的Activity的资产。所以我拉了我的drawables(我的程序有很多),编辑它们以减少文件大小,并再次尝试。虫子消失了。你可以看看你的LogCat输出是否与我的相似,看你是否有类似的问题:

01-15 05:20:40.462: E/dalvikvm-heap(4513): Out of memory on a 3145744-byte allocation.
01-15 05:20:40.462: I/dalvikvm(4513): "main" prio=5 tid=1 RUNNABLE
01-15 05:20:40.462: I/dalvikvm(4513):   | group="main" sCount=0 dsCount=0 obj=0x4158b6a0 self=0x41001a60
01-15 05:20:40.462: I/dalvikvm(4513):   | sysTid=4513 nice=0 sched=0/0 cgrp=apps handle=1074673744
01-15 05:20:40.462: I/dalvikvm(4513):   | schedstat=( 0 0 0 ) utm=41 stm=20 core=1
01-15 05:20:40.462: I/dalvikvm(4513):   at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
01-15 05:20:40.462: I/dalvikvm(4513):   at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:592)
01-15 05:20:40.462: I/dalvikvm(4513):   at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:445)
01-15 05:20:40.462: I/dalvikvm(4513):   at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:781)
01-15 05:20:40.462: I/dalvikvm(4513):   at android.content.res.Resources.loadDrawable(Resources.java:1963)
01-15 05:20:40.462: I/dalvikvm(4513):   at android.content.res.Resources.getDrawable(Resources.java:672)
01-15 05:20:40.462: I/dalvikvm(4513):   at com.kbi.speeddraw.lite.game.drawables.character.ExplodingCharacterDrawable.<init>(ExplodingCharacterDrawable.java:27)
<!-- snip -->
01-15 05:20:40.462: I/dalvikvm(4513):   at com.kbi.gameengine.api.gameactivity.GameActivity.onCreate(GameActivity.java:80)
01-15 05:20:40.472: I/dalvikvm(4513):   at android.app.Activity.performCreate(Activity.java:5048)
01-15 05:20:40.472: I/dalvikvm(4513):   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
01-15 05:20:40.472: I/dalvikvm(4513):   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2052)
01-15 05:20:40.472: I/dalvikvm(4513):   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2113)
01-15 05:20:40.472: I/dalvikvm(4513):   at android.app.ActivityThread.access$700(ActivityThread.java:139)
01-15 05:20:40.472: I/dalvikvm(4513):   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1224)
01-15 05:20:40.472: I/dalvikvm(4513):   at android.os.Handler.dispatchMessage(Handler.java:99)
01-15 05:20:40.472: I/dalvikvm(4513):   at android.os.Looper.loop(Looper.java:137)
01-15 05:20:40.472: I/dalvikvm(4513):   at android.app.ActivityThread.main(ActivityThread.java:4918)
01-15 05:20:40.472: I/dalvikvm(4513):   at java.lang.reflect.Method.invokeNative(Native Method)
01-15 05:20:40.472: I/dalvikvm(4513):   at java.lang.reflect.Method.invoke(Method.java:511)
01-15 05:20:40.472: I/dalvikvm(4513):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
01-15 05:20:40.472: I/dalvikvm(4513):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
01-15 05:20:40.472: I/dalvikvm(4513):   at dalvik.system.NativeStart.main(Native Method)
01-15 05:20:40.472: A/libc(4513): Fatal signal 11 (SIGSEGV) at 0x00000be0 (code=1), thread 4513 (.speeddraw.lite)
01-15 05:20:40.472: A/libc(4513): Fatal signal 11 (SIGSEGV) at 0x00180500 (code=1), thread 4527 (.speeddraw.lite)

答案 3 :(得分:4)

在我的情况下检查OutofMemory问题我在Samsung S3上遇到此错误,并且用于在启动Activity上管理大量图像。我搜索了许多没有解决方案的响应,因为我根本没有EditText或输入(实际上,我不知道为什么错误显示spannable字符串零长度 ....而不是像OutOfMemory那样的其他东西,然后我意识到通过分辨率排序的图像是在错误的文件夹和超大,以及在天空中的堆。 祝你好运

答案 4 :(得分:4)

以下Google Plus帖子解决了我的问题:

基本上问题与9个补丁文件中的光学边界有关。在我的情况下,我使用从Holo主题复制的较新9件。如link

中所述,这些新补丁在旧版Android中无效

答案 5 :(得分:3)

确保您拥有assets目录下的所有资源图片。我遇到了这个问题,结果发现我的一张图片丢失了。一旦我将图像放回资产目录下,一切都很好。

答案 6 :(得分:1)

使用这一个......                     options.headers = {“Connection”:“close”};

答案 7 :(得分:0)

以下方法让我摆脱了webview中的错误:

webView.freeMemory();

webView.clearCache(true);

第二个选项会降低您的应用速度。

答案 8 :(得分:0)

对我来说,问题在于chrome webview。我禁用Chrome并启用Android Webview。对我来说很好。