我一直在阅读有关追踪SIGSEGVAndroid应用程序的原因的其他帖子.我打算在我的应用程序中搜索与Canvas使用相关的可能的NullPointers,但我的SIGSEGVbarf每次都有不同的内存地址.另外我见过code=1和code=2.如果内存地址是0x00000000,我有一个线索它是一个NullPointer.
我得到的最后一个是code=2:
A/libc(4969): Fatal signal 11 (SIGSEGV) at 0x42a637d9 (code=2)
Run Code Online (Sandbox Code Playgroud)
有关如何追踪此问题的任何建议?
我有一个嫌疑人,但我还没有热衷于尝试它.我的应用程序使用OSMDroid API进行离线映射.OverlayItem类表示地图上的标记/节点.我有一个服务,它通过网络收集数据以填充OverlayItem,然后显示在地图上.为了简化我的设计,我将OverlayItem扩展到我自己的NodeOverlayItem类中,该类包含我在UI Activity和Service中使用的一些附加属性.这给了我UI和服务的单点项目信息.我使用Intents广播到Activity,以便在更改内容时刷新UI映射.Activity绑定到Service,并且有一个Service方法来获取NodeOverlayItem的列表.我认为可能是OSMDroid API使用OverlayItem,而我的服务同时更新节点信息.(并发问题)
在我写这篇文章时,我认为这确实是问题所在.令人头疼的是没有从NodeOverlayItem拆分Node和OverlayItem,而是Activity需要来自Node的一些数据,服务保存.另外,当创建Activity(onResume等等)时,需要从活动离开时服务一直维护的Node数据重新创建OverlayItem对象.例如,您启动应用程序,服务收集数据,UI显示数据,您转到主页,然后返回应用程序,活动将需要从最新的服务节点数据中提取并重新创建OverlayItem.
我知道这不是一个很好或明确的问题.这就像我所有的SO问题都是利基或模糊.如果有人对如何解释这些SIGSEGV错误有任何建议,我们将不胜感激!
更新 这是调试会话期间捕获的最新崩溃.我有3个这样的设备用于测试,当我开发和测试时,它们并不都可靠地崩溃.我添加了一些额外的内容,因此可以注意到GC日志记录.您可以看到问题可能与内存耗尽无关.
03-03 02:02:38.328: I/CommService(7477): Received packet from: 192.168.1.102
03-03 02:02:38.328: I/CommService(7477): Already processed this packet. It's a re-broadcast from another node, or from myself. It's not a repeat broadcast though.
03-03 02:02:38.406: D/CommService(7477): Checking OLSRd info...
03-03 02:02:38.460: D/CommService(7477): Monitoring nodes...
03-03 02:02:38.515: D/dalvikvm(7477): GC_CONCURRENT freed 2050K, 16% …Run Code Online (Sandbox Code Playgroud) 我现在使用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)
Run Code Online (Sandbox Code Playgroud)
我在谷歌上搜索了一下这个错误,我的理解是它与设备的内存有关.我发现了一些解决方案,但并没有让我意识到我是如何在PhoneGap中实现它们的.
有没有人在这之前遇到过此错误?我该怎么做才能解决问题?
谢谢 :)
我GSON用于解析Json数据.我的Json数据如下:
{
"count": "12",
"colbreak": 1,
"name": "unary rels",
"score": "9090",
"Words": [
{
"count": 6,
"word": "prp_g?a?-",
"name": "prp_g?a?-",
"score": 9.1,
"Words": "kol",
"seek": 2231297
}
],
"seek": 0
}
Run Code Online (Sandbox Code Playgroud)
GsonParse.java
public class GsonParse {
@SerializedName("count")
public String count;
@SerializedName("colbreak")
public String colbreak;
@SerializedName("name")
public String count;
@SerializedName("score")
public String score;
@SerializedName("Words")
public List<Words> mWords = new ArrayList<Words>();
@SerializedName("seek")
public String seek;
}
Run Code Online (Sandbox Code Playgroud)
我使用下面的方法来解析这个JSON数据.
public static <T> ArrayList<T> JsonParse(T t, String response) {
// convert String into …Run Code Online (Sandbox Code Playgroud) 我开发了一个Android客户端 - 服务器应用程序.我已在我的应用程序中实现了Google map V2,以便用户可以在地图上查看他附近的地点.但是当我在地图和普通活动之间切换时,我的应用程序突然崩溃只在具有OS 5.0的Android设备上.我用过地图片段.以下是我得到的崩溃报告:
android.system.ErrnoException:读取失败:在libcore.io.BlockGuardOs.read上的libcore.io.Posix.read(Posix.java:147)上的libcore.io.Posix.readBytes(本机方法)中的EAGAIN(再试一次)( BlockGuardOs.java:230)位于com.android.server.am.NativeCrashListener的com.android.server.am.NativeCrashListener.consumeNativeCrashData(NativeCrashListener.java:240)的android.system.Os.read(Os.java:364) .RUN(NativeCrashListener.java:138)
这是我如何实例化我的谷歌地图:
mapView = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.mapview)).getMap();
Run Code Online (Sandbox Code Playgroud)
我搜索了很多,以找出这次崩溃的根本原因,但我一无所获.是特定于操作系统的问题,因为我没有从崩溃日志中获取任何信息,告诉我应用程序崩溃的位置.请引导我去抓住这次车祸.提前致谢..!!
String jsons = "{'appname':'application', 'Version':'0.1.0', 'UUID':'300V', 'WWXY':'310W', 'ABCD':'270B', 'YUDE':'280T'}";
Run Code Online (Sandbox Code Playgroud)
这是我的json字符串.我怎么能解析它给GsonBuilder()我会得到对象?我尝试很少思考但没有效果.
我想存储一个Location对象,我正在尝试选择一个很好的方法.请告诉我如何做到这一点
我正在使用此代码,但是当我从首选项获取位置时,位置会像这样返回...
位置[mProvider = STORAGE,MTIME = 0,mLatitude = 30.0,mLongitude = 76.0,mHasAltitude =假,mAltitude = 0.0,mHasSpeed =假,MSPEED = 0.0,mHasBearing =假,mBearing = 0.0,mHasAccuracy =假,mAccuracy = 0.0, mExtras =空]
/** Store Location object in SharedPreferences */
public void storeLocation(Context context, Location location) {
SharedPreferences settings;
Editor editor;
try {
JSONObject locationJson = new JSONObject();
locationJson.put(LATITUDE, location.getLatitude());
locationJson.put(LONGITUDE, location.getLongitude());
settings = context.getSharedPreferences(PREFS_NAME,Context.MODE_PRIVATE);
editor = settings.edit();
editor.putString(KEY_LOCATION, locationJson.toString());
editor.commit();
Log.i("location_util_store", "Location" + location);
} catch (Exception e) {
e.printStackTrace();
}
}
/** Retrieve Location object from …Run Code Online (Sandbox Code Playgroud)