由java.lang.IllegalStateException引起EmojiCompat未初始化,库androidx.emoji.widget.EmojiTextView

时间:2020-07-22 11:38:20

标签: android illegalstateexception

我自己没有经历过这种崩溃,但是当我检查Firebase Crashlytics时,有些用户确实知道了。

Firebase中的错误:

由java.lang.IllegalStateException引起 EmojiCompat未初始化。请先调用EmojiCompat.init() com.app.myapp.UserActivity.onCreate

致命异常:java.lang.RuntimeException 无法启动活动ComponentInfo {com.app.myapp / com.app.myapp.UserActivity}:android.view.InflateException:二进制XML文件行#429:二进制XML文件行#429:膨胀类androidx.emoji.widget时出错。 EmojiTextView

这是xml中的第429行

                <androidx.emoji.widget.EmojiTextView
                    android:id="@+id/user_description"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:maxLines="12"
                    android:paddingTop="40dp"
                    android:paddingLeft="10dp"
                    android:paddingRight="10dp"
                    android:paddingBottom="40dp"
                    android:textAlignment="center"
                    android:textColor="@color/black" />

,我也刚好在setContentView(R.layout.activity_user);的下面。在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 :(得分:0)

import React, { Component } from 'react' export default class Addroom extends Component { constructor(props) { super(props) this.state = { backgroundColor:'white', room:'', roomNameInputColor:'white', roomTypes:["kitchen", "bathroom", "bedroom"], roomSelected: [''], roomSel:'', colorTypes:['red', 'green', 'blue', 'teal'], colorSelected:[''], colorSel:'', }; } addRoomName = (e) => { const room = e.target.value; let roomNameInputColor = 'white'; if (e.target.value.length >= 5) { roomNameInputColor = 'green'; } else { roomNameInputColor = 'red'; } this.setState({ room, addRoomName: room, roomNameInputColor }); } createRoom=()=> { this.props.add(this.state.room); } createRoomType=()=> { this.props.addRoomType(this.state.roomSelected); } createColorType=()=> { this.props.addColorType(this.state.colorSelected); } setCategory = (roomSel) => { this.setState({roomSelected : roomSel}); }; setColorCategory = (colorSel) => { this.setState({colorSelected : colorSel}); }; render() { return ( <div> {/* //Select Room Type */} <select onChange={(e) => this.setCategory(e.target.value)}>{this.state.roomTypes.map((type) => <option value={type}>{type}</option> )}</select><br/> {/* //Select Room Color */} <select onChange={(e) => this.setColorCategory(e.target.value)}>{this.state.colorTypes.map((type) => <option value={type}>{type}</option> )} </select><br/> <input onChange={this.addRoomName} style={{backgroundColor:this.state.roomNameInputColor}} placeholder='Name Your Room'/><br/> <button onClick={() => {this.createRoom(); this.createRoomType(); this.createColorType();}}>Create</button> </div> ) } } 类中或在import React, { Component } from 'react' export default class Room extends Component { constructor(props) { super(props) this.state = { } } render() { return ( <div> <h3>Room1: {this.props.r} </h3> <h3>Room Type1: {this.props.rt}</h3> <h3>Room Color1: {this.props.ct}</h3> </div> ) } } 之前的版本中初始化该库

application