2

バンプ API を使用するアプリケーションを開発しようとしています。すべてが初めてうまく機能します。どういうわけか、ホームボタンを押してアプリケーションに戻ると、例外なくクラッシュします(2、3回は正常に動作する場合があります)。logcat を確認すると、次のスタック トレースが得られました。

16:33:18.915: I/DEBUG(31): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
07-11 16:33:18.915: I/DEBUG(31): Build fingerprint: 'generic/sdk/generic/:2.2/FRF91/43546:eng/test-keys'
07-11 16:33:18.915: I/DEBUG(31): pid: 280, tid: 338  >>> dig.app.com <<<
07-11 16:33:18.915: I/DEBUG(31): signal 11 (SIGSEGV), fault addr 4897c000
07-11 16:33:18.915: I/DEBUG(31):  r0 4897bfe0  r1 4897bfe8  r2 ffecb094  r3 00000000
07-11 16:33:18.915: I/DEBUG(31):  r4 00000000  r5 00000000  r6 00000000  r7 00000000
07-11 16:33:18.915: I/DEBUG(31):  r8 00000000  r9 00000000  10 00000000  fp 00000000
07-11 16:33:18.915: I/DEBUG(31):  ip 00000000  sp 480cadf8  lr 00000010  pc afd0f234  cpsr a0000010
07-11 16:33:19.025: I/DEBUG(31):          #00  pc 0000f234  /system/lib/libc.so
07-11 16:33:19.061: W/dalvikvm(280): JNI WARNING: native code passing in bad object 0x4003fc78 0x4003fc78 (Check_SetFloatField)
07-11 16:33:19.061: W/dalvikvm(280):              in Landroid/graphics
/Path;.native_computeBounds (ILandroid/graphics/RectF;)V (SetFloatField)
07-11 16:33:19.061: I/dalvikvm(280): "main" prio=5 tid=1 RUNNABLE
07-11 16:33:19.061: I/dalvikvm(280):   | group="main" sCount=0 dsCount=0 s=N obj=0x4001d8e0 self=0xccb0
07-11 16:33:19.061: I/dalvikvm(280):   | sysTid=280 nice=0 sched=0/0 cgrp=default handle=-1345026008
07-11 16:33:19.061: I/dalvikvm(280):   | schedstat=( 955496474453 102439081045 208084 )
07-11 16:33:19.061: I/dalvikvm(280):   at android.graphics.Path.native_computeBounds(Native Method)
07-11 16:33:19.135: I/DEBUG(31):          #01  pc 00051e22  /data/data/dig.app.com/lib/libandroid-api.so
07-11 16:33:19.135: I/DEBUG(31):          #02  pc 0005401a  /data/data/dig.app.com/lib/libandroid-api.so
07-11 16:33:19.135: I/DEBUG(31):          #03  pc 0005609e  /data/data/dig.app.com/lib/libandroid-api.so
07-11 16:33:19.135: I/DEBUG(31):          #04  pc 000512fe  /data/data/dig.app.com/lib/libandroid-api.so
07-11 16:33:19.135: I/DEBUG(31):          #05  pc 0001103c  /system/lib/libc.so
07-11 16:33:19.135: I/DEBUG(31):          #06  pc 00010b20  /system/lib/libc.so
07-11 16:33:19.135: I/DEBUG(31): code around pc:
07-11 16:33:19.135: I/DEBUG(31): afd0f214 e2522020 3a00004d e35c0018 0a000033 
07-11 16:33:19.135: I/DEBUG(31): afd0f224 e35c0008 0a000018 e491c004 e1a0400c 
07-11 16:33:19.135: I/DEBUG(31): afd0f234 e8b10fe0 f5d1f040 e2522020 2491c004 
07-11 16:33:19.135: I/DEBUG(31): afd0f244 e1833804 e1a04824 e1844805 e1a05825 
07-11 16:33:19.135: I/DEBUG(31): afd0f254 e1855806 e1a06826 e1866807 e1a07827 
07-11 16:33:19.145: I/DEBUG(31): code around lr:
07-11 16:33:19.145: I/DEBUG(31): stack:
07-11 16:33:19.145: I/DEBUG(31):     480cadb8  00000000  
07-11 16:33:19.145: I/DEBUG(31):     480cadbc  005cc628  [heap]
07-11 16:33:19.145: I/DEBUG(31):     480cadc0  00000000  
07-11 16:33:19.145: I/DEBUG(31):     480cadc4  afd103f0  /system/lib/libc.so
07-11 16:33:19.145: I/DEBUG(31):     480cadc8  00000003  
07-11 16:33:19.145: I/DEBUG(31):     480cadcc  afd41724  /system/lib/libc.so
07-11 16:33:19.145: I/DEBUG(31):     480cadd0  00562878  [heap]
07-11 16:33:19.145: I/DEBUG(31):     480cadd4  c0000000  
07-11 16:33:19.145: I/DEBUG(31):     480cadd8  0007d0c4  [heap]
07-11 16:33:19.145: I/DEBUG(31):     480caddc  0007d0c0  [heap]
07-11 16:33:19.145: I/DEBUG(31):     480cade0  488470a1  
07-11 16:33:19.145: I/DEBUG(31):     480cade4  afd0c741  /system/lib/libc.so
07-11 16:33:19.145: I/DEBUG(31):     480cade8  80a7cdd9  /data/data/dig.app.com/lib/libandroid-api.so
07-11 16:33:19.145: I/DEBUG(31):     480cadec  005cc5e0  [heap]
07-11 16:33:19.145: I/DEBUG(31):     480cadf0  df002777  
07-11 16:33:19.145: I/DEBUG(31):     480cadf4  e3a070ad  
07-11 16:33:19.145: I/DEBUG(31): #00 480cadf8  fffffffe  
07-11 16:33:19.145: I/DEBUG(31):     480cadfc  48847099  
07-11 16:33:19.145: I/DEBUG(31):     480cae00  480cae4c  
07-11 16:33:19.145: I/DEBUG(31):     480cae04  0007d0c4  [heap]
07-11 16:33:19.155: I/DEBUG(31):     480cae08  0007d0c0  [heap]
07-11 16:33:19.155: I/DEBUG(31):     480cae0c  488470a1  
07-11 16:33:19.155: I/DEBUG(31):     480cae10  00000002  
07-11 16:33:19.155: I/DEBUG(31):     480cae14  48847098  
07-11 16:33:19.155: I/DEBUG(31):     480cae18  48847008  
07-11 16:33:19.155: I/DEBUG(31):     480cae1c  80a51e25  /data/data/dig.app.com/lib/libandroid-api.so
07-11 16:33:19.155: I/DEBUG(31): #01 480cae20  00000000  
07-11 16:33:19.155: I/DEBUG(31):     480cae24  480cae4c  

バンプ API はネイティブ ライブラリとしてアプリケーションに含まれています ( libandroid-api.so)。バンプサーバーに接続するために、私はサービスを使用しており、onStop(ホームボタンを押したとき)サービスのバインドを解除し、onStart(バックグラウンドから再開するとき)サービスをバインドします。したがって、この UnBinding と Binding を 2 ~ 3 回続けると、このエラーが発生します。

このシグナル 11 (SIGSEGV)、fault addr について検索したところ、アプリケーションが無効なメモリ参照を行ったときに発生していることがわかりました。このネイティブ ライブラリにはアクセスできませんでした。どうすればいいのかわからない。

4

2 に答える 2

2

シングルトンでアプリを実行するたびに、configure を 1 回だけ呼び出す必要があります。

于 2012-12-14T22:46:10.490 に答える
2

私は同じ問題を抱えていました。実際には、最初api.configureは正常に動作していますが、次の試みはアプリケーションをクラッシュさせるだけです。

ここに同じ問題があると思われるものを投稿しました:Bump API Android crash

私はそれを自分で解決し、バンプ API を中心にシングルトンを構築したので、API が一度だけ構成され、構成済みの場合にのみ返されるようにしました。コードは私の質問にあります。

于 2012-08-15T13:19:06.163 に答える