我正在接收A / libc:致命信号11(SIGSEGV),使用改造类生成我的服务接口的实现时的代码1。
我认为这是由于本机库中的空指针段错误。没有任何东西被抛出,所以我无法追踪它。最奇怪的部分是它不会发生在我的任何仿真器或物理设备上(均为6.0),除了我的HTC恰好是6.0.1。
这是我的界面:
public interface RestApiPerson {
@GET(QUERY_PERSON)
Call<PersonSearchResults> getPersonSearchResult(@Query("query") String q);
}
这是实施。崩溃发生在(Call&lt; PersonSearchResults&gt; 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
关于什么可能导致麻烦的任何想法,或者我如何为自己确定它?
答案 0 :(得分:-3)
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
我将此权限添加到Manifest并且它不再崩溃。