Boa tarde a todos.
Sou filhote em desenvolvimento com Android, e estou estudando com base em um projeto do curso, implementando recursos de JSON, webservice com REST, etc.
Estou agora fazendo com q a app carregue uma lista de contatos com as fotos do banco de dados (postgres). Até a exibiçao da foto na lista (1a Activity), tudo ok. QUando eu mando editar um registro que não tem foto, blz. Porém, quando eu mando editar um registro com foto, acontece esse erro:
12-31 10:31:47.577: D/dalvikvm(1649): GC_FOR_ALLOC freed 278K, 31% free 6517K/9424K, paused 28ms, total 38ms
12-31 10:31:50.747: D/dalvikvm(1649): GC_FOR_ALLOC freed 10K, 21% free 7456K/9424K, paused 27ms, total 28ms
12-31 10:31:50.767: I/dalvikvm-heap(1649): Grow heap (frag case) to 9.199MB for 1944668-byte allocation
12-31 10:31:50.817: D/dalvikvm(1649): GC_FOR_ALLOC freed <1K, 18% free 9355K/11324K, paused 44ms, total 44ms
12-31 10:31:50.917: D/dalvikvm(1649): GC_FOR_ALLOC freed 973K, 26% free 8408K/11324K, paused 35ms, total 35ms
12-31 10:31:50.937: I/dalvikvm-heap(1649): Grow heap (frag case) to 9.201MB for 972523-byte allocation
12-31 10:31:50.987: I/ActivityManager(372): START u0 {cmp=br.com.caelum.cadastrocaelum/.FormularioCadastro (has extras)} from pid 1649
12-31 10:31:50.997: E/gralloc_goldfish(51): gralloc_alloc: Mismatched usage flags: 266 x 425, usage 333
12-31 10:31:50.997: W/GraphicBufferAllocator(51): alloc(266, 425, 1, 00000333, ...) failed -22 (Invalid argument)
12-31 10:31:50.997: E/(51): GraphicBufferAlloc::createGraphicBuffer(w=266, h=425) failed (Invalid argument), handle=0x0
12-31 10:31:50.997: E/BufferQueue(372): [ScreenshotClient] dequeueBuffer: SurfaceComposer::createGraphicBuffer failed
12-31 10:31:51.007: W/WindowManager(372): Screenshot failure taking screenshot for (266x425) to layer 21015
12-31 10:31:51.087: D/dalvikvm(1649): GC_FOR_ALLOC freed 2850K, 17% free 6508K/7780K, paused 39ms, total 39ms
12-31 10:31:51.157: I/Choreographer(1649): Skipped 394 frames! The application may be doing too much work on its main thread.
12-31 10:31:51.227: E/JavaBinder(372): !!! FAILED BINDER TRANSACTION !!!
12-31 10:31:51.237: W/ActivityManager(372): Exception when starting activity br.com.caelum.cadastrocaelum/.FormularioCadastro
12-31 10:31:51.237: W/ActivityManager(372): android.os.TransactionTooLargeException
12-31 10:31:51.237: W/ActivityManager(372): at android.os.BinderProxy.transact(Native Method)
12-31 10:31:51.237: W/ActivityManager(372): at android.app.ApplicationThreadProxy.scheduleLaunchActivity(ApplicationThreadNative.java:750)
12-31 10:31:51.237: W/ActivityManager(372): at com.android.server.am.ActivityStackSupervisor.realStartActivityLocked(ActivityStackSupervisor.java:966)
12-31 10:31:51.237: W/ActivityManager(372): at com.android.server.am.ActivityStackSupervisor.startSpecificActivityLocked(ActivityStackSupervisor.java:1055)
12-31 10:31:51.237: W/ActivityManager(372): at com.android.server.am.ActivityStack.resumeTopActivityLocked(ActivityStack.java:1633)
12-31 10:31:51.237: W/ActivityManager(372): at com.android.server.am.ActivityStackSupervisor.resumeTopActivitiesLocked(ActivityStackSupervisor.java:2005)
12-31 10:31:51.237: W/ActivityManager(372): at com.android.server.am.ActivityStack.completePauseLocked(ActivityStack.java:905)
12-31 10:31:51.237: W/ActivityManager(372): at com.android.server.am.ActivityStack.activityPausedLocked(ActivityStack.java:814)
12-31 10:31:51.237: W/ActivityManager(372): at com.android.server.am.ActivityManagerService.activityPaused(ActivityManagerService.java:5086)
12-31 10:31:51.237: W/ActivityManager(372): at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:426)
12-31 10:31:51.237: W/ActivityManager(372): at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2049)
12-31 10:31:51.237: W/ActivityManager(372): at android.os.Binder.execTransact(Binder.java:404)
12-31 10:31:51.237: W/ActivityManager(372): at dalvik.system.NativeStart.run(Native Method)
12-31 10:31:51.237: W/ActivityManager(372): Force removing ActivityRecord{b40fa248 u0 br.com.caelum.cadastrocaelum/.ListaAlunosActivity t10}: app died, no saved state
12-31 10:31:51.367: D/dalvikvm(1667): Not late-enabling CheckJNI (already on)
12-31 10:31:51.387: I/ActivityManager(372): Start proc br.com.caelum.cadastrocaelum for activity br.com.caelum.cadastrocaelum/.FormularioCadastro: pid=1667 uid=10056 gids={50056, 3003, 1028, 1015}
12-31 10:31:51.487: D/dalvikvm(52): GC_EXPLICIT freed 43K, 4% free 2741K/2852K, paused 4ms+4ms, total 128ms
12-31 10:31:51.597: D/dalvikvm(52): GC_EXPLICIT freed <1K, 4% free 2741K/2852K, paused 9ms+4ms, total 105ms
12-31 10:31:51.667: D/dalvikvm(52): GC_EXPLICIT freed <1K, 4% free 2741K/2852K, paused 8ms+14ms, total 75ms
12-31 10:31:51.757: I/dalvikvm(1667): CheckJNI enabled: not enabling JNI app bug workarounds.
12-31 10:31:51.847: E/JavaBinder(372): !!! FAILED BINDER TRANSACTION !!!
12-31 10:31:51.857: W/ActivityManager(372): Exception in new application when starting activity br.com.caelum.cadastrocaelum/.FormularioCadastro
12-31 10:31:51.857: W/ActivityManager(372): android.os.TransactionTooLargeException
12-31 10:31:51.857: W/ActivityManager(372): at android.os.BinderProxy.transact(Native Method)
12-31 10:31:51.857: W/ActivityManager(372): at android.app.ApplicationThreadProxy.scheduleLaunchActivity(ApplicationThreadNative.java:750)
12-31 10:31:51.857: W/ActivityManager(372): at com.android.server.am.ActivityStackSupervisor.realStartActivityLocked(ActivityStackSupervisor.java:966)
12-31 10:31:51.857: W/ActivityManager(372): at com.android.server.am.ActivityStackSupervisor.attachApplicationLocked(ActivityStackSupervisor.java:385)
12-31 10:31:51.857: W/ActivityManager(372): at com.android.server.am.ActivityManagerService.attachApplicationLocked(ActivityManagerService.java:4855)
12-31 10:31:51.857: W/ActivityManager(372): at com.android.server.am.ActivityManagerService.attachApplication(ActivityManagerService.java:4915)
12-31 10:31:51.857: W/ActivityManager(372): at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:394)
12-31 10:31:51.857: W/ActivityManager(372): at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2049)
12-31 10:31:51.857: W/ActivityManager(372): at android.os.Binder.execTransact(Binder.java:404)
12-31 10:31:51.857: W/ActivityManager(372): at dalvik.system.NativeStart.run(Native Method)
12-31 10:31:51.917: I/ActivityManager(372): Start proc br.com.caelum.cadastrocaelum for activity br.com.caelum.cadastrocaelum/.FormularioCadastro: pid=1680 uid=10056 gids={50056, 3003, 1028, 1015}
12-31 10:31:51.967: D/dalvikvm(1680): Not late-enabling CheckJNI (already on)
12-31 10:31:52.167: I/dalvikvm(1680): CheckJNI enabled: not enabling JNI app bug workarounds.
12-31 10:31:52.437: E/JavaBinder(372): !!! FAILED BINDER TRANSACTION !!!
12-31 10:31:52.447: W/ActivityManager(372): Exception in new application when starting activity br.com.caelum.cadastrocaelum/.FormularioCadastro
12-31 10:31:52.447: W/ActivityManager(372): android.os.TransactionTooLargeException
12-31 10:31:52.447: W/ActivityManager(372): at android.os.BinderProxy.transact(Native Method)
12-31 10:31:52.447: W/ActivityManager(372): at android.app.ApplicationThreadProxy.scheduleLaunchActivity(ApplicationThreadNative.java:750)
12-31 10:31:52.447: W/ActivityManager(372): at com.android.server.am.ActivityStackSupervisor.realStartActivityLocked(ActivityStackSupervisor.java:966)
12-31 10:31:52.447: W/ActivityManager(372): at com.android.server.am.ActivityStackSupervisor.attachApplicationLocked(ActivityStackSupervisor.java:385)
12-31 10:31:52.447: W/ActivityManager(372): at com.android.server.am.ActivityManagerService.attachApplicationLocked(ActivityManagerService.java:4855)
12-31 10:31:52.447: W/ActivityManager(372): at com.android.server.am.ActivityManagerService.attachApplication(ActivityManagerService.java:4915)
12-31 10:31:52.447: W/ActivityManager(372): at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:394)
12-31 10:31:52.447: W/ActivityManager(372): at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2049)
12-31 10:31:52.447: W/ActivityManager(372): at android.os.Binder.execTransact(Binder.java:404)
12-31 10:31:52.447: W/ActivityManager(372): at dalvik.system.NativeStart.run(Native Method)
12-31 10:31:52.457: W/ActivityManager(372): Force removing ActivityRecord{b4160898 u0 br.com.caelum.cadastrocaelum/.FormularioCadastro t10}: app died, no saved state
12-31 10:31:53.017: W/EGL_emulation(533): eglSurfaceAttrib not implemented
12-31 10:31:53.207: W/WindowManager(372): Rebuild removed 2 windows but added 1
12-31 10:31:53.207: W/WindowManager(372): java.lang.RuntimeException: here
12-31 10:31:53.207: W/WindowManager(372): at com.android.server.wm.WindowManagerService.rebuildAppWindowListLocked(WindowManagerService.java:7985)
12-31 10:31:53.207: W/WindowManager(372): at com.android.server.wm.WindowManagerService.rebuildAppWindowListLocked(WindowManagerService.java:7921)
12-31 10:31:53.207: W/WindowManager(372): at com.android.server.wm.WindowManagerService.handleAnimatingStoppedAndTransitionLocked(WindowManagerService.java:8660)
12-31 10:31:53.207: W/WindowManager(372): at com.android.server.wm.WindowManagerService.performLayoutAndPlaceSurfacesLockedInner(WindowManagerService.java:9183)
12-31 10:31:53.207: W/WindowManager(372): at com.android.server.wm.WindowManagerService.performLayoutAndPlaceSurfacesLockedLoop(WindowManagerService.java:8137)
12-31 10:31:53.207: W/WindowManager(372): at com.android.server.wm.WindowManagerService.performLayoutAndPlaceSurfacesLocked(WindowManagerService.java:8079)
12-31 10:31:53.207: W/WindowManager(372): at com.android.server.wm.WindowManagerService.access$300(WindowManagerService.java:157)
12-31 10:31:53.207: W/WindowManager(372): at com.android.server.wm.WindowManagerService$H.handleMessage(WindowManagerService.java:7139)
12-31 10:31:53.207: W/WindowManager(372): at android.os.Handler.dispatchMessage(Handler.java:102)
12-31 10:31:53.207: W/WindowManager(372): at android.os.Looper.loop(Looper.java:137)
12-31 10:31:53.207: W/WindowManager(372): at android.os.HandlerThread.run(HandlerThread.java:61)
12-31 10:31:53.217: W/WindowManager(372): This window was lost: Window{b41713f0 u0 br.com.caelum.cadastrocaelum/br.com.caelum.cadastrocaelum.ListaAlunosActivity}
12-31 10:31:53.217: W/WindowManager(372): mDisplayId=0 mSession=Session{b422a4d8 1649:u0a10056} mClient=android.os.BinderProxy@b422a6f8
12-31 10:31:53.217: W/WindowManager(372): mOwnerUid=10056 mShowToOwnerOnly=true package=br.com.caelum.cadastrocaelum appop=NONE
12-31 10:31:53.217: W/WindowManager(372): mAttrs=WM.LayoutParams{(0,0)(fillxfill) sim=#110 ty=1 fl=#40010100 pfl=0x8 wanim=0x10302a1}
12-31 10:31:53.217: W/WindowManager(372): Requested w=800 h=1216 mLayoutSeq=411
12-31 10:31:53.217: W/WindowManager(372): mBaseLayer=21000 mSubLayer=0 mAnimLayer=21005+0=21005 mLastLayer=21015
12-31 10:31:53.217: W/WindowManager(372): mToken=AppWindowToken{b4260850 token=Token{b402e990 ActivityRecord{b40fa248 u0 br.com.caelum.cadastrocaelum/.ListaAlunosActivity t10}}}
12-31 10:31:53.217: W/WindowManager(372): mRootToken=AppWindowToken{b4260850 token=Token{b402e990 ActivityRecord{b40fa248 u0 br.com.caelum.cadastrocaelum/.ListaAlunosActivity t10}}}
12-31 10:31:53.217: W/WindowManager(372): mAppToken=AppWindowToken{b4260850 token=Token{b402e990 ActivityRecord{b40fa248 u0 br.com.caelum.cadastrocaelum/.ListaAlunosActivity t10}}}
12-31 10:31:53.217: W/WindowManager(372): mViewVisibility=0x8 mHaveFrame=true mObscured=false
12-31 10:31:53.217: W/WindowManager(372): mSeq=0 mSystemUiVisibility=0x0
12-31 10:31:53.217: W/WindowManager(372): mGivenContentInsets=[0,0][0,0] mGivenVisibleInsets=[0,0][0,0]
12-31 10:31:53.217: W/WindowManager(372): mConfiguration={1.0 310mcc260mnc en_US ldltr sw600dp w600dp h888dp 213dpi lrg port finger qwerty/v/v -nav/h s.5}
12-31 10:31:53.217: W/WindowManager(372): mHasSurface=false mShownFrame=[0.0,0.0][800.0,1216.0] isReadyForDisplay()=false
12-31 10:31:53.217: W/WindowManager(372): mFrame=[0,0][800,1216] last=[0,0][800,1216]
12-31 10:31:53.217: W/WindowManager(372): mSystemDecorRect=[0,33][800,1216] last=[0,33][800,1216]
12-31 10:31:53.217: W/WindowManager(372): Frames: containing=[0,0][800,1216] parent=[0,0][800,1216]
12-31 10:31:53.217: W/WindowManager(372): display=[0,0][800,1216] overscan=[0,0][800,1280]
12-31 10:31:53.217: W/WindowManager(372): content=[0,33][800,1216] visible=[0,33][800,1216]
12-31 10:31:53.217: W/WindowManager(372): decor=[0,33][800,1216]
12-31 10:31:53.217: W/WindowManager(372): Cur insets: overscan=[0,0][0,0] content=[0,33][0,0] visible=[0,33][0,0]
12-31 10:31:53.217: W/WindowManager(372): Lst insets: overscan=[0,0][0,0] content=[0,33][0,0] visible=[0,33][0,0]
12-31 10:31:53.217: W/WindowManager(372): WindowStateAnimator{b410dbc0 br.com.caelum.cadastrocaelum/br.com.caelum.cadastrocaelum.ListaAlunosActivity}:
12-31 10:31:53.217: W/WindowManager(372): mGlobalScale=1.0 mDsDx=1.0 mDtDx=0.0 mDsDy=0.0 mDtDy=1.0
12-31 10:31:53.217: W/WindowManager(372): Current app token list:
12-31 10:31:53.217: V/WindowManager(372): Display 0
12-31 10:31:53.217: V/WindowManager(372): #0: Token{b4078e58 ActivityRecord{b4078be0 u0 com.android.launcher/com.android.launcher2.Launcher t1}}
12-31 10:31:53.217: W/WindowManager(372): Final window list:
12-31 10:31:53.217: V/WindowManager(372): #0: Window{b40e2c40 u0 SearchPanel}
12-31 10:31:53.227: V/WindowManager(372): #1: Window{b40e3988 u0 NavigationBar}
12-31 10:31:53.227: V/WindowManager(372): #2: Window{b40efc48 u0 StatusBar}
12-31 10:31:53.227: V/WindowManager(372): #3: Window{b416c438 u0 Keyguard}
12-31 10:31:53.227: V/WindowManager(372): #4: Window{b3f9aae0 u0 KeyguardScrim}
12-31 10:31:53.227: V/WindowManager(372): #5: Window{b403a700 u0 com.android.launcher/com.android.launcher2.Launcher}
12-31 10:31:53.227: V/WindowManager(372): #6: Window{b409f740 u0 com.android.systemui.ImageWallpaper}
12-31 10:38:00.067: D/dalvikvm(692): GC_FOR_ALLOC freed 759K, 76% free 4928K/19916K, paused 46ms, total 60ms
12-31 10:39:42.327: D/dalvikvm(522): GC_FOR_ALLOC freed 512K, 17% free 3289K/3916K, paused 31ms, total 33ms
Vi por ae que esse erro se refere a problemas de memoria, o que tem um pouco de lógica por conta do tamanho das imagens.
Mesmo eu utilizando o metodo abaixo para reduzi-las, ou mesmo NÃO EXIBINDO IMAGEM, o erro persiste.
[code] public void carregaImagem(String foto) {
String imgB64 = foto;
byte[] arquivo = Base64.decode(imgB64, Base64.DEFAULT);
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.outHeight = 80;
opts.outWidth = 80;
opts.inSampleSize = 1;
Bitmap bp;
bp = BitmapFactory.decodeByteArray(arquivo, 0, arquivo.length, opts);
try {
bp = Bitmap.createScaledBitmap(bp, 100, 200, true);
this.foto.setImageBitmap(bp);
} catch (OutOfMemoryError e) {
e.printStackTrace();
}
}[/code]
A quem puder ajudar, agradeço.
No mais, ótimo fim de ano a todos.