zzhoujay / RichText

Android平台下的富文本解析器,支持Html和Markdown
MIT License
3.92k stars 560 forks source link

如果富文本内容里面带有本地图片,会闪退 #144

Closed chaopengTan closed 7 years ago

chaopengTan commented 7 years ago

如果富文本内容里面的图片地址为本地图片地址,就会闪退,因为RichText引用了okhttp,okhttp内部会抛异常,这是个很致命的东西

zzhoujay commented 7 years ago

本地图片的问题已经解决了很久才对,遇到本地图片不会走okhttp那边,麻烦把出问题的源文本发一下

chaopengTan commented 7 years ago

@zzhoujay java.lang.IllegalArgumentException: unexpected url: file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsB8DD.tmp.png at okhttp3.Request$Builder.url(Request.java:142) at com.zzhoujay.richtext.ig.DefaultImageGetter.getDrawable(DefaultImageGetter.java:125) at com.zzhoujay.richtext.RichText.getDrawable(RichText.java:342) at com.zzhoujay.richtext.parser.CachedSpannedParser.handleImage(CachedSpannedParser.java:119) at com.zzhoujay.richtext.parser.CachedSpannedParser.parse(CachedSpannedParser.java:33) at com.zzhoujay.richtext.RichText.generateRichText(RichText.java:179) at com.zzhoujay.richtext.RichText.access$000(RichText.java:36) at com.zzhoujay.richtext.RichText$1.run(RichText.java:146) at android.os.Handler.handleCallback(Handler.java:733) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5241) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:818) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:634) at dalvik.system.NativeStart.main(Native Method)

就是这个

zzhoujay commented 7 years ago

目前只能识别根路径:/开头的本地文件

zzhoujay commented 7 years ago

如果你的本地文件路径格式不是这样的,可以在ImageFixCallback里修改ImageHolder的Source,改成根路径开头的绝对路径即可

chaopengTan commented 7 years ago

是ImageFixCallback吗? imageFixCallback只回调onSizeReady方法,从你上面的注释来看,此时图片已经加载完成了,应该在加载前进行判断吧

chaopengTan commented 7 years ago

@zzhoujay 是ImageFixCallback吗? imageFixCallback只回调onSizeReady方法,从你上面的注释来看,此时图片已经加载完成了,应该在加载前进行判断吧

zzhoujay commented 7 years ago

onInit方法。。。

zzhoujay commented 7 years ago

只能在onInit方法中修改ImageHolder的source

chaopengTan commented 7 years ago

但是并没有触发onInit的回调

chaopengTan commented 7 years ago

onInit方法没有触发,只回调了onSizeReady方法

zzhoujay commented 7 years ago

你有设置autoFix(false)没?wiki里写了的