我现在使用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中实现它们的。
之前有没有人遇到此错误? 我该怎么做才能解决问题?
谢谢:)
答案 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。对我来说很好。