我收到 A/libc:致命信号 11 (SIGSEGV),当使用改造类生成我的服务接口(interface)的实现时代码 1。
我认为这是由于 native 库中的空指针段错误造成的。什么都没有抛出,所以我无法追踪它。最奇怪的是,它不会发生在我的任何模拟器或物理设备(所有 6.0)上,除了我的 HTC 恰好是 6.0.1。
这是我的界面:
public interface RestApiPerson {
@GET(QUERY_PERSON)
Call<PersonSearchResults> getPersonSearchResult(@Query("query") String q);
}
这里是实现。崩溃发生在 (Call< PersonSearchResults > call = restApi.getPersonSearchResult(query); )
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(END_POINT_PERSON)
.addConverterFactory(GsonConverterFactory.create())
.build();
RestApiPerson restApi = retrofit.create(RestApiPerson.class);
Call<PersonSearchResults> call = restApi.getPersonSearchResult(query);
这是堆栈:
07-31 12:58:08.492 18310-18310/? A/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x3ad75934
07-31 12:58:08.522 18310-18310/? A/DEBUG: r0 70fc5774 r1 12d78a00 r2 0025af14 r3 b276c070
07-31 12:58:08.522 18310-18310/? A/DEBUG: r4 0025af14 r5 12d78a00 r6 70fc4dc4 r7 715c4a80
07-31 12:58:08.522 18310-18310/? A/DEBUG: r8 12c5d190 r9 b8cbad20 sl 71866e80 fp be9a3a9c
07-31 12:58:08.522 18310-18310/? A/DEBUG: ip b276c070 sp be9a3a20 lr 73d5b6e5 pc b49ffa68 cpsr 000e0030
07-31 12:58:08.522 18310-18310/? A/DEBUG: backtrace:
07-31 12:58:08.522 18310-18310/? A/DEBUG: #00 pc 000eaa68 /system/lib/libart.so (art_quick_imt_conflict_trampoline+7)
07-31 12:58:08.522 18310-18310/? A/DEBUG: #01 pc 022b46e3 /system/framework/arm/boot.oat (offset 0x2286000)
07-31 12:58:09.812 18310-18310/? A/DEBUG: Tombstone written to: /data/tombstones/tombstone_05
关于可能导致问题的原因,或者我如何自己确定问题,有什么想法吗?
最佳答案
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
我将此权限添加到 Manifest,它不再崩溃。
关于android - 改造 - A/libc : Fatal signal 11 (SIGSEGV), 代码 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38687466/