崩溃 - 材料设计android 5.0 [英] crash - material design android 5.0

查看:149
本文介绍了崩溃 - 材料设计android 5.0的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的应用程序有一个很大的问题。它崩溃了,我不知道为什么。



在我的应用程序中,我有一个活动 listview customlistviewadapter 和第二个 Detailactivity
我想从Android Lollipop添加材料设计,有我的问题。我在两个活动之间添加了很好的活动交易



我正在拍摄照片和标题列表视图中的listviewelement,并使用 SparseArray< Bitmap> 传输图片,意图 ActivityOptions 转移我的其余数据。



从我的第一个活动 DetailActivity 工作正常。在我的 DetailActivity 我必须加载更多的数据,其中之一是一个描述。
描述文本具有\\\
新行的标签,有时也有xhtml标签。
要摆脱\\\
标签,我使用 String mdesc = text.replace(\\\
,< br />);



所以现在我只有xhtml标签,使它在我的textview看起来不错我使用这行 description.setText(Html.fromHtml(mdesc ));



也像charm一样工作,但是如果我点击后退按钮,应用程序在说明中的字符数量会崩溃高于〜3800。



这是我的logcat:

在应用程序中JNI检测错误:JNI CallVoidMethodV调用与挂起的异常'java.lang.IllegalStateException'抛出在void android.os.MessageQueue.nativePollOnce中($ / code> A / art:art / runtime / check_jni.cc: long,i 
A / art:art / runtime / check_jni.cc:65]调用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]mainprio = 5 tid = 1 Runnable
A / art:art / runtime / check_jni.cc :65] | group =mainsCount = 0 dsCount = 0 obj = 0x737d5ec0 self = 0xb500 7800
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] |举行mutexes =mutator lock(共享的)
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 / s ystem / 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 :: pollInn er(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 / system @ framework @ boot .oat(Java_android_os_MessageQueue_nativePollOnce__JI + 102)
A / art:art / runtime / check_jni.cc:65]在android.os.MessageQueue.nativePollOnce(本机方法)
A / art:art / runtime / check_jni .cc:65]在android.os.MessageQueue.next(MessageQueue.java:143)
A / art:art / runtime / check_jni.cc:65]在android.os.Looper.loop(Looper.java :122)
A / art:art / runtime / check_jni.cc:65]在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]在java.lang.reflect.Method.invoke(Method.java:372)
A / art:art / runtime / check_jni.cc:65]在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]中止线程:
A / art:art / runtime / runtime.cc:283]mainprio = 9 tid = 1 Native
A / 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] |持有mutexes =abort lockmutator 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.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>& :: 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:a rt / runtime / runtime.cc:283] native:#13 pc 0007474d /system/lib/libandroid_runtime.so(android :: NativeDisplayEventReceiver :: dispatchVsync(long long,int,unsigned int)+40)
A /艺术: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/system@framework@boot.oat(Java_android_os_MessageQueue_nativePollOnce__JI + 102)
A / art:art /runtime/runtime.cc:28 3]在android.os.MessageQueue.nativePollOnce(本机方法)
A / art:art / runtime / runtime.cc:283]在android.os.MessageQueue.next(MessageQueue.java:143)$ b $在android.os.Looper.loop(Looper.java:122)
A / art:art / runtime / runtime.cc:283]在android上.app.ActivityThread.main(ActivityThread.java:5221)
A / art:art / runtime / runtime.cc:283]在java.lang.reflect.Method.invoke!(本机方法)
A / art:art / runtime / runtime.cc:283]在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]在com.android.internal.os.ZygoteInit.main (ZygoteInit.java:694)
A / art:art / runtime / runtime.cc:283]'void android.os.MessageQueue.nativePollOnce(long,int)抛出的待处理异常java.lang.IllegalStateException: 2'
A / art:art / runtime / runtime.cc:283] java.lang.Ill egalStateException:无法为TextView创建图层
A / art:art / runtime / runtime.cc:283]在void android.os.MessageQueue.nativePollOnce(long,int)(MessageQueue.java:-2)
A / art:art / runtime / runtime.cc:283] android.os.Message android.os.MessageQueue.next()(MessageQueue.java:143)
A / art:art / runtime / run.cc:283]在void android.os.Looper.loop()(Looper.java:122)
A / art:art / runtime / runtime.cc:283]在void android.app.ActivityThread。 main(java.lang.String [])(ActivityThread.java:5221)
A / art:art / runtime / runtime.cc:283] 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]在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 / runtim e / runtime.cc:283] at void com.android.internal.os.ZygoteInit.main(java.lang.String [])(ZygoteInit.java:694)
A / art:art / runtime / runtime .cc:283]转储所有线程没有适当的锁定:线程列表锁定mutator锁
A / art:art / runtime / runtime.cc:283]所有线程:
A / art:art / runtime /runtime.cc:283] DALVIK THREADS(52):
A / art:art / runtime / runtime.cc:283]mainprio = 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]举行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]本机:#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:a rt / runtime / runtime.cc:283] native:#13 pc 0007474d /system/lib/libandroid_runtime.so(android :: NativeDisplayEventReceiver :: dispatchVsync(long long,int,unsigned int)+40)
A /艺术: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/system@framework@boot.oat(Java_android_os_MessageQueue_nativePollOnce__JI + 102)
A / art:art /runtime/runtime.cc:28 3]在android.os.MessageQueue.nativePollOnce(本机方法)
A / art:art / runtime / runtime.cc:283]在android.os.MessageQueue.next(MessageQueue.java:143)$ b $在android.os.Looper.loop(Looper.java:122)
A / art:art / runtime / runtime.cc:283]在android上.app.ActivityThread.main(ActivityThread.java:5221)
A / art:art / runtime / runtime.cc:283]在java.lang.reflect.Method.invoke!(本机方法)
A / art:art / runtime / runtime.cc:283]在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]在com.android.internal.os.ZygoteInit.main (ZygoteInit.java:694)
A / art:art / runtime / runtime.cc:283]
A / art:art / runtime / runtime.cc:283]堆线程池工作线程0 prio = 9 tid = 2本机(仍然启动)
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] |举例mutexes =
A / art:art / runtime / runtime.cc:283] native:#00 pc 00012e98 /system/lib/libc.so(syscall + 28)
A / art:art /运行时/ runtime.cc:283] native:#01 pc 000a9fa3 /system/lib/libart.so(art :: ConditionVariable :: Wait(art :: Thread *)+ 98)
A / art:art /运行时/ runtime.cc:283] native:#02 pc 0024714d /system/lib/libart.so(art :: ThreadPool :: GetTask(art :: Thread *)+ 64)
A / art:art /运行时/ 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]本机:#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](没有托管栈框架)
A / art:art / runtime / runtime.cc: 283]
A / art: art / runtime / runtime.cc:283]堆线程池工作线程2prio = 9 tid = 3本机(仍然启动)
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] |举例mutexes =
A / art:art / runtime / runtime.cc:283] native:#00 pc 00012e98 /system/lib/libc.so(syscall + 28)
A / art:art /运行时/ runtime.cc:283] native:#01 pc 000a9fa3 /system/lib/libart.so(art :: ConditionVariable :: Wait(art :: Thread *)+ 98)
A / art:art /运行时/ runtime.cc:283] native:#02 pc 0024714d /system/lib/libart.so(art :: ThreadPool :: GetTask(art :: Thread *)+ 64)
A / art:art /运行时/ 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]本机:#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](没有管理堆栈框架)

我无法添加整个logcat所以我把其余的粘贴在pastebin上。
链接到pastebin是 here



感谢您的帮助!

解决方案

如果你看看你的日志,您可能会看到类似于以下警告:

  W / OpenGLRenderer:图层超过最大值。 GPU支持的尺寸(1080x5856,最大= 4096x4096)

场景动画通过创建位图层目标场景。 GPU具有该层的最大容量。在Nexus 5上,这是4096x4096。您的目标场景有其中的视图,导致一个太大的图层,可能是由于大量的文本内容。这超出了GPU导致应用程序崩溃的容量。在模拟器上不会发生这种情况的原因是主机GPU具有更大的内存。



解决方案



避免在转换动画结束之前创建高于4096的目标图层。转换结束后,请加载您的内容。您可以通过实施 TransitionListener界面来聆听转换结束事件。可以找到一个例子:此处。然后,您可以加载您的内容。


I have a big problem with my app. It crashes and I don't know why.

In my app I have a Activity with a listview and a customlistviewadapter and a second Detailactivity. I want to add the material design from Android Lollipop and there is my problem. I added the nice Activity Transaction between the two Activities.

I'm taking the picture and the title from the listviewelement out of the listview and using a SparseArray<Bitmap> to transfer the picture, a intent and ActivityOptions to transfer the rest of my data.

The Transaction from my first Activity to the DetailActivity works fine. At my DetailActivity I have to load more data, one of this is a description. The description text have \n tags for new line and sometimes also xhtml tags. To get rid of \n tags I'm using String mdesc = text.replace("\n", "<br />");.

So now I have only xhtml tags and to make it look nice in my textview I use this line description.setText(Html.fromHtml(mdesc));.

Also works like charm, but if I click the back button the app crashes when the number of chars in the description are higher than ~3800.

This is my 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/system@framework@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/system@framework@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/system@framework@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)

I couldn't add the whole logcat so I pasted the rest on pastebin. The link to pastebin is here.

Thanks for your help!

解决方案

If you take a look at your logs, immediately above the stack trace you'll probably see a warning similar to:

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

Scene animations work by creating a bitmap layer of the target scene. The GPU has a maximum capacity for this layer. On a Nexus 5 this is 4096x4096. Your target scene has views in it which result in a layer which is too large, probably due to the large amounts of text content. This exceeds the capacity of the GPU causing the app to crash. The reason why this doesn't occur on the emulator is because the host GPU has a greater memory.

Solution

Avoid creating a target layer which is higher than 4096 before the transition animation ends. Instead load your content after the transition ends. You can listen for the transition ended event by implementing the TransitionListener interface. An example of this can be found here. You can then load your content.

这篇关于崩溃 - 材料设计android 5.0的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆