3

私はこの奇妙なバグを抱えていますが、それに対する可能な解決策については何も見つかりませんでした。私のアプリで少し遊んだ後、問題は常にランダムに発生します。このアプリは、ほぼすべてのデバイスで完全に実行されます。この問題が発生しているデバイスの1つはCM7.1.0を実行しており、多くのCM7ユーザーが同様の問題について不満を言っていることを私は知っています。

残念ながら、アプリで同じ問題を抱えているユーザーがいますが、CM7を使用しているかどうかはわかりません。同じROM上の他のアプリでこのエラーを再現できなかったため、他の何かに関連している必要があります。

前にも言ったように、完全にランダムに見えるので、ソースコードをコピーしても意味がありません。代わりにログを示します。誰かがすでに同じ問題を抱えていて、私を助けてくれることを願っています。ありがとう。

msm7k.gralloc(1306): alloc mmap(fd=150, size=614400, prot=3) failed (Try again)
msm7k.gralloc(1306): gralloc failed err=Try again
GraphicBufferAllocator(1306): alloc(320, 480, 1, 00000033, ...) failed -11 (Try again)
GraphicBufferAllocator(1306): Allocated buffers:
GraphicBufferAllocator(1306):   0x20a8d0:  300.00 KiB |  320 ( 320) x  480 |  4 | 0x00000133
GraphicBufferAllocator(1306):   0x20c110:  531.25 KiB |  320 ( 320) x  425 |  1 | 0x00000133
GraphicBufferAllocator(1306):   0x292db0:   31.25 KiB |  320 ( 320) x   25 |  1 | 0x00000133
GraphicBufferAllocator(1306):   0x299568:  300.00 KiB |  320 ( 320) x  480 |  4 | 0x00000133
GraphicBufferAllocator(1306):   0x4a2288:  331.25 KiB |  320 ( 320) x  265 |  1 | 0x00000133
GraphicBufferAllocator(1306):   0x4b2518:   31.25 KiB |  320 ( 320) x   25 |  1 | 0x00000133
GraphicBufferAllocator(1306): Total allocated: 1525.00 KB
SurfaceFlinger(1306): Layer::requestBuffer(this=0x3a7618), index=0, w=320, h=480 failed (Try again)
Surface(7024): Surface (identity=224) requestBuffer(0, 0, 0, 0, 00000033) returned a buffer with a null handle
Surface(7024): getBufferLocked(0, 0, 0, 0, 00000033) failed (Out of memory)
Surface(7024): dequeueBuffer failed (Out of memory)
ViewRoot(7024): OutOfResourcesException locking surface
ViewRoot(7024): android.view.Surface$OutOfResourcesException
ViewRoot(7024):     at android.view.Surface.lockCanvasNative(Native Method)
ViewRoot(7024):     at android.view.Surface.lockCanvas(Surface.java:314)
ViewRoot(7024):     at android.view.ViewRoot.draw(ViewRoot.java:1461)
ViewRoot(7024):     at android.view.ViewRoot.performTraversals(ViewRoot.java:1263)
ViewRoot(7024):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1865)
ViewRoot(7024):     at android.os.Handler.dispatchMessage(Handler.java:99)
ViewRoot(7024):     at android.os.Looper.loop(Looper.java:130)
ViewRoot(7024):     at android.app.ActivityThread.main(ActivityThread.java:3835)
ViewRoot(7024):     at java.lang.reflect.Method.invokeNative(Native Method)
ViewRoot(7024):     at java.lang.reflect.Method.invoke(Method.java:507)
ViewRoot(7024):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847)
ViewRoot(7024):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)
ViewRoot(7024):     at dalvik.system.NativeStart.main(Native Method)
4

3 に答える 3

3

git commitを何時間もプルした後、この問題が発生していないものをようやく見つけました。作業中のアプリは機密データを画面に表示するため、「最近のアプリ」セクションでサムネイルとして表示される画像を変更しようとしました。これを実現するために、ウィンドウにセキュアフラグを設定していました。

http://developer.android.com/reference/android/view/Window.html#setFlags(int、int)http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#FLAG_SECURE _ _

これが例外の原因となった問題であり、表示された黒い画面であることが判明しました。取り外した後は、すべて正常に機能していました。このヒントが、同じ問題に直面している他の開発者に役立つことを願っています。

于 2012-07-09T10:30:21.257 に答える
0

release()もう使用していない場合は、電話する必要がありますandroid.view.Surface

http://developer.android.com/intl/es/reference/android/view/Surface.html#release()

于 2012-07-06T10:36:18.740 に答える
0

同様の問題がありますが、HWサーフェスに関連しています。

ProgressDialogとSignInコンポーネントがあります。このコンポーネント間のすべての通信は、Handlerクラスを介して行われます。

私の場合、クラッシュから救う唯一のことは、特定のアクティビティのハードウェアアクセラレーションをオフにすることです。

于 2013-11-06T08:40:48.053 に答える