Crash - дизайн материалов android 5.0

У меня большая проблема с моим приложением. Он падает, и я не знаю, почему.

В моем приложении у меня есть Activity с listview и customlistviewadapter, а второй Detailactivity. Я хочу добавить дизайн материала с Android Lollipop, и есть моя проблема. Я добавил приятную транзакцию транзакций между двумя Activities.

Я беру снимок и заголовок из списка из списка и используя SparseArray<Bitmap> для переноса изображения, intent и ActivityOptions, чтобы передать остальные мои данные.

Транзакция от моего первого Activity до Detailactivity отлично работает. На моем Detailactivity мне нужно загрузить больше данных, одно из них - описание. В тексте описания есть \n теги для новой строки, а иногда и теги xhtml. Чтобы избавиться от \n тегов, я использую String mdesc = text.replace("\n", "<br />");.

Итак, теперь у меня есть только теги xhtml и чтобы они выглядели хорошо в моем текстовом представлении. Я использую эту строку description.setText(Html.fromHtml(mdesc));.

Также работает как шарм, но если я нажму кнопку "Назад", приложение выйдет из строя, когда количество символов в описании будет больше, чем ~ 3800.

Это мой логарифм:

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)

Я не мог добавить весь логарифм, чтобы наклеить остальное на pastebin. Ссылка на pastebin здесь.

Спасибо за вашу помощь!

Ответ 1

Если вы посмотрите на свои журналы, сразу над трассировкой стека, вы увидите предупреждение, похожее на:

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

Анимации сцен работают, создавая растровый слой целевой сцены. Графический процессор имеет максимальную емкость для этого слоя. На Nexus 5 это 4096x4096. В вашей целевой сцене есть представления, которые приводят к слишком большому слою, вероятно, из-за большого количества текстового содержимого. Это превышает пропускную способность графического процессора, что приводит к сбою приложения. Причина, по которой это не происходит в эмуляторе, заключается в том, что основной GPU имеет большую память.

Решение

Избегайте создания целевого слоя, который выше 4096, до окончания анимации перехода. Вместо этого загрузите свой контент после завершения перехода. Вы можете прослушать событие с завершением перехода, реализовав интерфейс TransitionListener. Пример этого можно найти здесь здесь. Затем вы можете загрузить свой контент.

Ответ 2

Лучшим решением, как было указано в других ответах, является добавление:   android:transitionGroup="true" к длинному представлению (обычно ScrollView).

Что касается подхода к прослушивателю перехода, не забудьте заново создать свой просмотр при ротации, если не было общей анимации.

Ответ 3

У меня была эта проблема в Genymotion, эмуляторе AndroidStudio, пару реальных устройств.

Мои журналы были немного разными

(fbo = 13 1440x196)

но это не точка.

Эта проблема возникает во время перехода общего элемента, и основная причина заключается в том, что это целевая активность предварительного рендеринга (одна из которых заканчивается ваш общий переход).

Итак, если эта активность действительно большая (с несколькими экранами прокручиваемого текста или длинной сеткой с изображениями, как в моем случае), вы получите эту ошибку.

Решение:

Разделите контент и загрузите не более 1-1,5 экранов контента за раз.

Это значительно уменьшит размер экрана, который предварительно отображается во время перехода общих элементов (он предварительно отображается каждый раз, когда система знает, где разместить переходный объект после перехода).

Ответ 4

Поскольку мне все равно нужно поддерживать все до версии для Android версии 9, ни android:transitionGroup="true", ни использование TransitionListener не будут работать для меня. Я мог бы предотвратить эту проблему, отключив аппаратное ускорение на уровне активности:

<activity android:hardwareAccelerated="false" />

Отключение его на уровне представления не сработало для меня, но может работать для других:

myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

Ответ 5

У меня была такая же проблема, я нашел способ избежать краха. Вы можете просто изменить return-transition другим, а не исчезать, например: explode/move/slide/...

Для этого вы можете просто добавить

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

в ваш файл apptheme.