我的应用立即崩溃,并显示以下错误:
android.view.InflateException: Binary XML file line #11: Error inflating class android.support.text.emoji.widget.EmojiTextView
但是此错误仅在我在某些SDK上运行我的应用程序时出现-在大于24的SDK上可以正常工作
答案 0 :(得分:0)
每当您使用EmojiTextView或EmojiEditText时,只需将它们添加在super.onCreate(...)之后:
FontRequest fontRequest = new FontRequest(
"com.google.android.gms.fonts",
"com.google.android.gms",
"Noto Color Emoji Compat",
R.array.com_google_android_gms_fonts_certs);
EmojiCompat.Config config = new FontRequestEmojiCompatConfig(this, fontRequest);
EmojiCompat.init(config);
答案 1 :(得分:0)
我也面临同样的问题,现在它已修复并在旧设备上按预期工作。
步骤 - 1: 需要添加依赖项'如下:
implementation 'androidx.emoji:emoji:1.1.0'
implementation 'androidx.emoji:emoji-appcompat:1.1.0'
implementation 'androidx.emoji:emoji-bundled:1.1.0'
步骤 - 2: 创建 Application 类并在 Application 类的 onCreate() 方法中添加以下代码并将 Application 类添加到 AndroidManifest.xml
// add below code in onCreate() method
val emojiConfig = BundledEmojiCompatConfig(this)
emojiConfig.setReplaceAll(true)
.registerInitCallback(object : InitCallback() {
override fun onInitialized() {
Timber.d( "EmojiCompat initialized")
}
override fun onFailed(throwable: Throwable?) {
Timber.d("EmojiCompat initialization failed $throwable" )
}
})
EmojiCompat.init(emojiConfig)
步骤 - 3: 现在您可以在 xml 中添加视图:
<androidx.emoji.widget.EmojiAppCompatTextView
android:id="@+id/tvEmoji"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:singleLine="true"
android:text="@string/str_following"
android:textColor="@color/colorLabelUse"
android:textSize="14sp" />
步骤 - 4: 现在您可以创建视图实例并支持所有具有向后兼容性的表情符号。您可以将表情符号添加为字符串,如下所示:
private static final String EMOJI = "\uD83D\uDC69\u200D\uD83D\uDCBB";//??
// TextView variant provided by EmojiCompat library
EmojiAppCompatTextView emojiTextView = findViewById(R.id.tvEmoji);
emojiTextView.setText(getString(R.string.emoji_text_view, EMOJI));
emojiTextView.setText(String.format("Emoji EditText %s",EMOJI));
==================ENJOY========================