2014-10-30 12 views
19

Ho un grosso problema con la mia app. Si schianta e non so perché.crash - material design android 5.0

Nella mia app ho uno Activity con uno listview e uno customlistviewadapter e un secondo Detailactivity. Voglio aggiungere il design del materiale da Android Lollipop e c'è il mio problema. Ho aggiunto la bella transazione di attività tra i due Activities.

sto prendendo l'immagine e il titolo dal listviewelement fuori dal listview e utilizzando un SparseArray<Bitmap> per trasferire l'immagine, un intent e ActivityOptions di trasferire il resto dei miei dati.

La transazione dal primo Activity a DetailActivity funziona correttamente. Al mio DetailActivity devo caricare più dati, uno di questi è una descrizione. Il testo della descrizione contiene tag \ n per la nuova riga e talvolta anche tag xhtml. Per eliminare i tag \ n sto utilizzando String mdesc = text.replace("\n", "<br />");.

Così ora ho solo tag xhtml e per renderlo bello nella mia vista testuale, utilizzo questa riga description.setText(Html.fromHtml(mdesc));.

Funziona anche come fascino, ma se faccio clic sul pulsante Indietro l'app si blocca quando il numero di caratteri nella descrizione è superiore a ~ 3800.

Questo è il mio logcat:

A/art﹕ art/runtime/check_jni.cc:65] JNI DETECTED ERROR IN APPLICATION: JNI CallVoidMethodV called with pending exception 'java.lang.IllegalStateException' thrown in void android.os.MessageQueue.nativePollOnce(long, i 
A/art﹕ art/runtime/check_jni.cc:65]  in call to CallVoidMethodV 
A/art﹕ art/runtime/check_jni.cc:65]  from void android.os.MessageQueue.nativePollOnce(long, int) 
A/art﹕ art/runtime/check_jni.cc:65] "main" prio=5 tid=1 Runnable 
A/art﹕ art/runtime/check_jni.cc:65] | group="main" sCount=0 dsCount=0 obj=0x737d5ec0 self=0xb5007800 
A/art﹕ art/runtime/check_jni.cc:65] | sysTid=31960 nice=-6 cgrp=apps sched=0/0 handle=0xb6f40ec8 
A/art﹕ art/runtime/check_jni.cc:65] | state=R schedstat=(285569518384 174632061067 1598010) utm=17211 stm=11345 core=0 HZ=100 
A/art﹕ art/runtime/check_jni.cc:65] | stack=0xbe3ad000-0xbe3af000 stackSize=8MB 
A/art﹕ art/runtime/check_jni.cc:65] | held mutexes= "mutator lock"(shared held) 
A/art﹕ art/runtime/check_jni.cc:65] native: #00 pc 00004c58 /system/lib/libbacktrace_libc++.so (UnwindCurrent::Unwind(unsigned int, ucontext*)+23) 
A/art﹕ art/runtime/check_jni.cc:65] native: #01 pc 000034c1 /system/lib/libbacktrace_libc++.so (Backtrace::Unwind(unsigned int, ucontext*)+8) 
A/art﹕ art/runtime/check_jni.cc:65] native: #02 pc 0025918d /system/lib/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, int, char const*, art::mirror::ArtMethod*)+84) 
A/art﹕ art/runtime/check_jni.cc:65] native: #03 pc 0023cd13 /system/lib/libart.so (art::Thread::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) const+162) 
A/art﹕ art/runtime/check_jni.cc:65] native: #04 pc 000b1195 /system/lib/libart.so (art::JniAbort(char const*, char const*)+620) 
A/art﹕ art/runtime/check_jni.cc:65] native: #05 pc 000b18c5 /system/lib/libart.so (art::JniAbortF(char const*, char const*, ...)+68) 
A/art﹕ art/runtime/check_jni.cc:65] native: #06 pc 000b4b4d /system/lib/libart.so (art::ScopedCheck::ScopedCheck(_JNIEnv*, int, char const*)+1324) 
A/art﹕ art/runtime/check_jni.cc:65] native: #07 pc 000bcf23 /system/lib/libart.so (art::CheckJNI::CallVoidMethodV(_JNIEnv*, _jobject*, _jmethodID*, std::__va_list)+42) 
A/art﹕ art/runtime/check_jni.cc:65] native: #08 pc 00060ad3 /system/lib/libandroid_runtime.so (???) 
A/art﹕ art/runtime/check_jni.cc:65] native: #09 pc 0007474d /system/lib/libandroid_runtime.so (android::NativeDisplayEventReceiver::dispatchVsync(long long, int, unsigned int)+40) 
A/art﹕ art/runtime/check_jni.cc:65] native: #10 pc 00074915 /system/lib/libandroid_runtime.so (android::NativeDisplayEventReceiver::handleEvent(int, int, void*)+80) 
A/art﹕ art/runtime/check_jni.cc:65] native: #11 pc 00012545 /system/lib/libutils.so (android::Looper::pollInner(int)+484) 
A/art﹕ art/runtime/check_jni.cc:65] native: #12 pc 000125ed /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+92) 
A/art﹕ art/runtime/check_jni.cc:65] native: #13 pc 0007fb61 /system/lib/libandroid_runtime.so (android::NativeMessageQueue::pollOnce(_JNIEnv*, int)+22) 
A/art﹕ art/runtime/check_jni.cc:65] native: #14 pc 000b0de7 /data/dalvik-cache/arm/[email protected]@boot.oat (Java_android_os_MessageQueue_nativePollOnce__JI+102) 
A/art﹕ art/runtime/check_jni.cc:65] at android.os.MessageQueue.nativePollOnce(Native method) 
A/art﹕ art/runtime/check_jni.cc:65] at android.os.MessageQueue.next(MessageQueue.java:143) 
A/art﹕ art/runtime/check_jni.cc:65] at android.os.Looper.loop(Looper.java:122) 
A/art﹕ art/runtime/check_jni.cc:65] at android.app.ActivityThread.main(ActivityThread.java:5221) 
A/art﹕ art/runtime/check_jni.cc:65] at java.lang.reflect.Method.invoke!(Native method) 
A/art﹕ art/runtime/check_jni.cc:65] at java.lang.reflect.Method.invoke(Method.java:372) 
A/art﹕ art/runtime/check_jni.cc:65] at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
A/art﹕ art/runtime/check_jni.cc:65] at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 
A/art﹕ art/runtime/check_jni.cc:65] 
A/art﹕ art/runtime/runtime.cc:283] Runtime aborting... 
A/art﹕ art/runtime/runtime.cc:283] Aborting thread: 
A/art﹕ art/runtime/runtime.cc:283] "main" prio=9 tid=1 Native 
A/art﹕ art/runtime/runtime.cc:283] | group="" sCount=0 dsCount=0 obj=0x737d5ec0 self=0xb5007800 
A/art﹕ art/runtime/runtime.cc:283] | sysTid=31960 nice=-6 cgrp=apps sched=0/0 handle=0xb6f40ec8 
A/art﹕ art/runtime/runtime.cc:283] | state=R schedstat=(285595822403 174647533456 1598201) utm=17213 stm=11346 core=1 HZ=100 
A/art﹕ art/runtime/runtime.cc:283] | stack=0xbe3ad000-0xbe3af000 stackSize=8MB 
A/art﹕ art/runtime/runtime.cc:283] | held mutexes= "abort lock" "mutator lock"(shared held) 
A/art﹕ art/runtime/runtime.cc:283] native: #00 pc 00004c58 /system/lib/libbacktrace_libc++.so (UnwindCurrent::Unwind(unsigned int, ucontext*)+23) 
A/art﹕ art/runtime/runtime.cc:283] native: #01 pc 000034c1 /system/lib/libbacktrace_libc++.so (Backtrace::Unwind(unsigned int, ucontext*)+8) 
A/art﹕ art/runtime/runtime.cc:283] native: #02 pc 0025918d /system/lib/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, int, char const*, art::mirror::ArtMethod*)+84) 
A/art﹕ art/runtime/runtime.cc:283] native: #03 pc 0023cd13 /system/lib/libart.so (art::Thread::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) const+162) 
A/art﹕ art/runtime/runtime.cc:283] native: #04 pc 0022c6a9 /system/lib/libart.so (art::AbortState::DumpThread(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, art::Thread*)+32) 
A/art﹕ art/runtime/runtime.cc:283] native: #05 pc 0022c94b /system/lib/libart.so (art::AbortState::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char> >&)+410) 
A/art﹕ art/runtime/runtime.cc:283] native: #06 pc 0022cb0b /system/lib/libart.so (art::Runtime::Abort()+82) 
A/art﹕ art/runtime/runtime.cc:283] native: #07 pc 000a7269 /system/lib/libart.so (art::LogMessage::~LogMessage()+1360) 
A/art﹕ art/runtime/runtime.cc:283] native: #08 pc 000b1381 /system/lib/libart.so (art::JniAbort(char const*, char const*)+1112) 
A/art﹕ art/runtime/runtime.cc:283] native: #09 pc 000b18c5 /system/lib/libart.so (art::JniAbortF(char const*, char const*, ...)+68) 
A/art﹕ art/runtime/runtime.cc:283] native: #10 pc 000b4b4d /system/lib/libart.so (art::ScopedCheck::ScopedCheck(_JNIEnv*, int, char const*)+1324) 
A/art﹕ art/runtime/runtime.cc:283] native: #11 pc 000bcf23 /system/lib/libart.so (art::CheckJNI::CallVoidMethodV(_JNIEnv*, _jobject*, _jmethodID*, std::__va_list)+42) 
A/art﹕ art/runtime/runtime.cc:283] native: #12 pc 00060ad3 /system/lib/libandroid_runtime.so (???) 
A/art﹕ art/runtime/runtime.cc:283] native: #13 pc 0007474d /system/lib/libandroid_runtime.so (android::NativeDisplayEventReceiver::dispatchVsync(long long, int, unsigned int)+40) 
A/art﹕ art/runtime/runtime.cc:283] native: #14 pc 00074915 /system/lib/libandroid_runtime.so (android::NativeDisplayEventReceiver::handleEvent(int, int, void*)+80) 
A/art﹕ art/runtime/runtime.cc:283] native: #15 pc 00012545 /system/lib/libutils.so (android::Looper::pollInner(int)+484) 
A/art﹕ art/runtime/runtime.cc:283] native: #16 pc 000125ed /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+92) 
A/art﹕ art/runtime/runtime.cc:283] native: #17 pc 0007fb61 /system/lib/libandroid_runtime.so (android::NativeMessageQueue::pollOnce(_JNIEnv*, int)+22) 
A/art﹕ art/runtime/runtime.cc:283] native: #18 pc 000b0de7 /data/dalvik-cache/arm/[email protected]@boot.oat (Java_android_os_MessageQueue_nativePollOnce__JI+102) 
A/art﹕ art/runtime/runtime.cc:283] at android.os.MessageQueue.nativePollOnce(Native method) 
A/art﹕ art/runtime/runtime.cc:283] at android.os.MessageQueue.next(MessageQueue.java:143) 
A/art﹕ art/runtime/runtime.cc:283] at android.os.Looper.loop(Looper.java:122) 
A/art﹕ art/runtime/runtime.cc:283] at android.app.ActivityThread.main(ActivityThread.java:5221) 
A/art﹕ art/runtime/runtime.cc:283] at java.lang.reflect.Method.invoke!(Native method) 
A/art﹕ art/runtime/runtime.cc:283] at java.lang.reflect.Method.invoke(Method.java:372) 
A/art﹕ art/runtime/runtime.cc:283] at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
A/art﹕ art/runtime/runtime.cc:283] at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 
A/art﹕ art/runtime/runtime.cc:283] Pending exception java.lang.IllegalStateException thrown by 'void android.os.MessageQueue.nativePollOnce(long, int):-2' 
A/art﹕ art/runtime/runtime.cc:283] java.lang.IllegalStateException: Unable to create layer for TextView 
A/art﹕ art/runtime/runtime.cc:283] at void android.os.MessageQueue.nativePollOnce(long, int) (MessageQueue.java:-2) 
A/art﹕ art/runtime/runtime.cc:283] at android.os.Message android.os.MessageQueue.next() (MessageQueue.java:143) 
A/art﹕ art/runtime/runtime.cc:283] at void android.os.Looper.loop() (Looper.java:122) 
A/art﹕ art/runtime/runtime.cc:283] at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:5221) 
A/art﹕ art/runtime/runtime.cc:283] at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[], boolean) (Method.java:-2) 
A/art﹕ art/runtime/runtime.cc:283] at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:372) 
A/art﹕ art/runtime/runtime.cc:283] at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:899) 
A/art﹕ art/runtime/runtime.cc:283] at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:694) 
A/art﹕ art/runtime/runtime.cc:283] Dumping all threads without appropriate locks held: thread list lock mutator lock 
A/art﹕ art/runtime/runtime.cc:283] All threads: 
A/art﹕ art/runtime/runtime.cc:283] DALVIK THREADS (52): 
A/art﹕ art/runtime/runtime.cc:283] "main" prio=9 tid=1 Native 
A/art﹕ art/runtime/runtime.cc:283] | group="" sCount=0 dsCount=0 obj=0x737d5ec0 self=0xb5007800 
A/art﹕ art/runtime/runtime.cc:283] | sysTid=31960 nice=-6 cgrp=apps sched=0/0 handle=0xb6f40ec8 
A/art﹕ art/runtime/runtime.cc:283] | state=R schedstat=(285618908185 174654076164 1598229) utm=17214 stm=11347 core=0 HZ=100 
A/art﹕ art/runtime/runtime.cc:283] | stack=0xbe3ad000-0xbe3af000 stackSize=8MB 
A/art﹕ art/runtime/runtime.cc:283] | held mutexes= "abort lock" 
A/art﹕ art/runtime/runtime.cc:283] native: #00 pc 00004c58 /system/lib/libbacktrace_libc++.so (UnwindCurrent::Unwind(unsigned int, ucontext*)+23) 
A/art﹕ art/runtime/runtime.cc:283] native: #01 pc 000034c1 /system/lib/libbacktrace_libc++.so (Backtrace::Unwind(unsigned int, ucontext*)+8) 
A/art﹕ art/runtime/runtime.cc:283] native: #02 pc 0025918d /system/lib/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, int, char const*, art::mirror::ArtMethod*)+84) 
A/art﹕ art/runtime/runtime.cc:283] native: #03 pc 0023cd13 /system/lib/libart.so (art::Thread::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) const+162) 
A/art﹕ art/runtime/runtime.cc:283] native: #04 pc 00245ea5 /system/lib/libart.so (art::ThreadList::DumpLocked(std::__1::basic_ostream<char, std::__1::char_traits<char> >&)+120) 
A/art﹕ art/runtime/runtime.cc:283] native: #05 pc 0022c8c1 /system/lib/libart.so (art::AbortState::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char> >&)+272) 
A/art﹕ art/runtime/runtime.cc:283] native: #06 pc 0022cb0b /system/lib/libart.so (art::Runtime::Abort()+82) 
A/art﹕ art/runtime/runtime.cc:283] native: #07 pc 000a7269 /system/lib/libart.so (art::LogMessage::~LogMessage()+1360) 
A/art﹕ art/runtime/runtime.cc:283] native: #08 pc 000b1381 /system/lib/libart.so (art::JniAbort(char const*, char const*)+1112) 
A/art﹕ art/runtime/runtime.cc:283] native: #09 pc 000b18c5 /system/lib/libart.so (art::JniAbortF(char const*, char const*, ...)+68) 
A/art﹕ art/runtime/runtime.cc:283] native: #10 pc 000b4b4d /system/lib/libart.so (art::ScopedCheck::ScopedCheck(_JNIEnv*, int, char const*)+1324) 
A/art﹕ art/runtime/runtime.cc:283] native: #11 pc 000bcf23 /system/lib/libart.so (art::CheckJNI::CallVoidMethodV(_JNIEnv*, _jobject*, _jmethodID*, std::__va_list)+42) 
A/art﹕ art/runtime/runtime.cc:283] native: #12 pc 00060ad3 /system/lib/libandroid_runtime.so (???) 
A/art﹕ art/runtime/runtime.cc:283] native: #13 pc 0007474d /system/lib/libandroid_runtime.so (android::NativeDisplayEventReceiver::dispatchVsync(long long, int, unsigned int)+40) 
A/art﹕ art/runtime/runtime.cc:283] native: #14 pc 00074915 /system/lib/libandroid_runtime.so (android::NativeDisplayEventReceiver::handleEvent(int, int, void*)+80) 
A/art﹕ art/runtime/runtime.cc:283] native: #15 pc 00012545 /system/lib/libutils.so (android::Looper::pollInner(int)+484) 
A/art﹕ art/runtime/runtime.cc:283] native: #16 pc 000125ed /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+92) 
A/art﹕ art/runtime/runtime.cc:283] native: #17 pc 0007fb61 /system/lib/libandroid_runtime.so (android::NativeMessageQueue::pollOnce(_JNIEnv*, int)+22) 
A/art﹕ art/runtime/runtime.cc:283] native: #18 pc 000b0de7 /data/dalvik-cache/arm/[email protected]@boot.oat (Java_android_os_MessageQueue_nativePollOnce__JI+102) 
A/art﹕ art/runtime/runtime.cc:283] at android.os.MessageQueue.nativePollOnce(Native method) 
A/art﹕ art/runtime/runtime.cc:283] at android.os.MessageQueue.next(MessageQueue.java:143) 
A/art﹕ art/runtime/runtime.cc:283] at android.os.Looper.loop(Looper.java:122) 
A/art﹕ art/runtime/runtime.cc:283] at android.app.ActivityThread.main(ActivityThread.java:5221) 
A/art﹕ art/runtime/runtime.cc:283] at java.lang.reflect.Method.invoke!(Native method) 
A/art﹕ art/runtime/runtime.cc:283] at java.lang.reflect.Method.invoke(Method.java:372) 
A/art﹕ art/runtime/runtime.cc:283] at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
A/art﹕ art/runtime/runtime.cc:283] at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 
A/art﹕ art/runtime/runtime.cc:283] 
A/art﹕ art/runtime/runtime.cc:283] "Heap thread pool worker thread 0" prio=9 tid=2 Native (still starting up) 
A/art﹕ art/runtime/runtime.cc:283] | group="" sCount=0 dsCount=0 obj=0x0 self=0xafe0e400 
A/art﹕ art/runtime/runtime.cc:283] | sysTid=31966 nice=0 cgrp=apps sched=0/0 handle=0xac5a1a00 
A/art﹕ art/runtime/runtime.cc:283] | state=S schedstat=(879428 6643385 8) utm=0 stm=0 core=1 HZ=100 
A/art﹕ art/runtime/runtime.cc:283] | stack=0xb4847000-0xb4849000 stackSize=1020KB 
A/art﹕ art/runtime/runtime.cc:283] | held mutexes= 
A/art﹕ art/runtime/runtime.cc:283] native: #00 pc 00012e98 /system/lib/libc.so (syscall+28) 
A/art﹕ art/runtime/runtime.cc:283] native: #01 pc 000a9fa3 /system/lib/libart.so (art::ConditionVariable::Wait(art::Thread*)+98) 
A/art﹕ art/runtime/runtime.cc:283] native: #02 pc 0024714d /system/lib/libart.so (art::ThreadPool::GetTask(art::Thread*)+64) 
A/art﹕ art/runtime/runtime.cc:283] native: #03 pc 002470e7 /system/lib/libart.so (art::ThreadPoolWorker::Run()+62) 
A/art﹕ art/runtime/runtime.cc:283] native: #04 pc 002479d5 /system/lib/libart.so (art::ThreadPoolWorker::Callback(void*)+60) 
A/art﹕ art/runtime/runtime.cc:283] native: #05 pc 000162e3 /system/lib/libc.so (__pthread_start(void*)+30) 
A/art﹕ art/runtime/runtime.cc:283] native: #06 pc 000142d3 /system/lib/libc.so (__start_thread+6) 
A/art﹕ art/runtime/runtime.cc:283] (no managed stack frames) 
A/art﹕ art/runtime/runtime.cc:283] 
A/art﹕ art/runtime/runtime.cc:283] "Heap thread pool worker thread 2" prio=9 tid=3 Native (still starting up) 
A/art﹕ art/runtime/runtime.cc:283] | group="" sCount=0 dsCount=0 obj=0x0 self=0xafb0e400 
A/art﹕ art/runtime/runtime.cc:283] | sysTid=31968 nice=0 cgrp=apps sched=0/0 handle=0xac5a1f00 
A/art﹕ art/runtime/runtime.cc:283] | state=S schedstat=(739842 1013075 7) utm=0 stm=0 core=1 HZ=100 
A/art﹕ art/runtime/runtime.cc:283] | stack=0xb4645000-0xb4647000 stackSize=1020KB 
A/art﹕ art/runtime/runtime.cc:283] | held mutexes= 
A/art﹕ art/runtime/runtime.cc:283] native: #00 pc 00012e98 /system/lib/libc.so (syscall+28) 
A/art﹕ art/runtime/runtime.cc:283] native: #01 pc 000a9fa3 /system/lib/libart.so (art::ConditionVariable::Wait(art::Thread*)+98) 
A/art﹕ art/runtime/runtime.cc:283] native: #02 pc 0024714d /system/lib/libart.so (art::ThreadPool::GetTask(art::Thread*)+64) 
A/art﹕ art/runtime/runtime.cc:283] native: #03 pc 002470e7 /system/lib/libart.so (art::ThreadPoolWorker::Run()+62) 
A/art﹕ art/runtime/runtime.cc:283] native: #04 pc 002479d5 /system/lib/libart.so (art::ThreadPoolWorker::Callback(void*)+60) 
A/art﹕ art/runtime/runtime.cc:283] native: #05 pc 000162e3 /system/lib/libc.so (__pthread_start(void*)+30) 
A/art﹕ art/runtime/runtime.cc:283] native: #06 pc 000142d3 /system/lib/libc.so (__start_thread+6) 
A/art﹕ art/runtime/runtime.cc:283] (no managed stack frames) 

non ho potuto aggiungere l'intero logcat così ho incollato il resto su pastebin. Il collegamento a pastebin è here.

Grazie per il vostro aiuto!

+0

Hai trovato qualche soluzione? Grazie! –

+0

Ho lo stesso problema, lo hai segnalato a google? – Bri6ko

+0

Si prega di incollare una stringa di esempio di ~ 3800 caratteri che si sta utilizzando in 'TextView' quando si verifica l'arresto anomalo – donturner

risposta

19

Se si dà un'occhiata al vostro log, immediatamente sopra la traccia dello stack probabilmente vedrete un simile avvertimento per:

W/OpenGLRenderer﹕ Layer exceeds max. dimensions supported by the GPU (1080x5856, max=4096x4096) 

animazioni scena di lavoro con la creazione di uno strato bitmap della scena di destinazione. La GPU ha una capacità massima per questo livello. Su un Nexus 5 questo è 4096x4096. La scena di destinazione contiene delle viste che generano un livello troppo grande, probabilmente a causa della grande quantità di contenuto del testo. Questo supera la capacità della GPU che causa l'arresto anomalo dell'app. Il motivo per cui questo non si verifica sull'emulatore è perché la GPU host ha una memoria più grande.

Soluzione

Evitare di creare un livello di destinazione che è superiore 4096 prima che l'animazione termina transizione. Caricare il contenuto al termine della transizione. È possibile ascoltare l'evento di transizione terminato implementando lo TransitionListener interface. Un esempio di questo può essere trovato here. È quindi possibile caricare il contenuto.

+0

Grazie per l'avviso su questo ... Sembra anche che accada su una transizione all'indietro quando lo schermo in uscita supera l'altezza 4096 .... ancora scavando. Questa sembra essere l'unica risposta interessante a questo problema su Internet al momento. – danb

+0

Qualche progresso in merito?Sono riuscito a farlo funzionare da setVisibility (GONE) a parte della vista su '' 'TransitionListener'''' '' onTransitionStart''' e mostrarlo di nuovo su '' 'onTransitionEnd''', ma si blocca ancora in stampa indietro . –

+0

'Impossibile allocare texture per layer (fbo = 13 1440x196)' questo è immediatamente sopra la traccia dello stack –

1

Ho riscontrato questo problema in Genymotion, emulatore di AndroidStudio, un paio di dispositivi reali.

miei ceppi erano un po 'diverso

(OSA = 13 1440x196)

ma non è questo il punto.

Questo problema si verifica durante la transizione di elementi condivisi e il motivo principale è perché si tratta di attività di destinazione pre-rendering (una in cui termina la transizione condivisa).

Quindi se questa attività è veramente grande (con un paio di schermate di testo scorrevole o una griglia lunga con immagini come nel mio caso) si otterrà questo errore.

Soluzione:

paginate il contenuto e caricare non più di 1-1,5 schermi di contenuti alla volta.

Questo diminuirà in modo significativo la dimensione dello schermo che si sta pre-renderizzati durante elementi condivisi di transizione (è in fase di pre-renderizzati ogni volta in modo che il sistema sa dove inserire il vostro oggetto transizione dopo la transizione)

+0

Questa non è affatto una soluzione. Usa Android: transitionGroup = "true" invece. –

6

La soluzione migliore come è stato sottolineato in altre risposte è aggiungere: android:transitionGroup="true" alla vista lunga (in genere ScrollView di qualche tipo).

Per quanto riguarda l'approccio del listener di transizione, non dimenticare di ricreare la vista su rotazione quando non ci sono animazioni condivise.

0

Dato che devo ancora supportare tutto con la versione 9 di Android, né lo android:transitionGroup="true" né l'TransitionListener funzionerebbero per me. Potrei evitare che il problema disattivando l'accelerazione hardware a livello di attività:

<activity android:hardwareAccelerated="false" /> 

Disabilitazione su un livello di visualizzazione non ha funzionato per me, ma potrebbe funzionare per gli altri:

myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null); 
0

Ho avuto lo stesso problema, ho trovato un modo per evitare l'incidente. Si può solo cambiare il return-transition agli altri invece di dissolvenza, come ad esempio: esplosione/move/slide/...

Per fare questo si può semplicemente aggiungere

<item name="android:windowReturnTransition">@android:transition/explode</item> 

al file apptheme.