我的应用程序使用EmojiCompat进行字体下载(未捆绑),并且我的大量用户报告以下错误:
Non-fatal Exception: java.lang.RuntimeException: fetchFonts result is not OK. (2) at android.support.text.emoji.FontRequestEmojiCompatConfig$FontRequestMetaDataLoader.createMetadata(FontRequestEmojiCompatConfig.java:307) at android.support.text.emoji.FontRequestEmojiCompatConfig$FontRequestMetaDataLoader.access$100(FontRequestEmojiCompatConfig.java:164) at android.support.text.emoji.FontRequestEmojiCompatConfig$FontRequestMetaDataLoader$1.run(FontRequestEmojiCompatConfig.java:218) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:158) at android.os.HandlerThread.run(HandlerThread.java:61)
我找不到任何对此错误消息的引用,我不知道是什么导致它.我的猜测是这是Google Play服务字体下载的内部问题.
编辑2017-11-13:仍在支持库27.0.0上发生.
编辑2017-11-15:我的配置.
在我的Application类上,在onCreate()上:
val fontRequest = FontRequest( "com.google.android.gms.fonts","com.google.android.gms","Noto Color Emoji Compat",R.array.com_google_android_gms_fonts_certs) val config = FontRequestEmojiCompatConfig(this,fontRequest) config.setReplaceAll(true) EmojiCompat.init(config)
使用表情符号解析文本:
EmojiCompat.get().registerInitCallback(object : EmojiCompat.InitCallback() { override fun onInitialized() { text = EmojiCompat.get().process(charSequence) } override fun onFailed(throwable: Throwable?) { throwable?.let { Crashlytics.logException(throwable) } } })
以上异常记录在Crashlytics.logException()上