有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

更改活动时使用java“安卓.view.InflateException:二进制XM文件行”

我目前正在开发一个Android应用程序,在实现将用户从一个活动引导到另一个活动的代码时遇到问题。 Android Studio IDE在任何Java或XML代码中都不会显示错误,但当启动活动时,我尝试切换为“登录”活动时,程序将失败,日志将产生以下错误

> 05-12 18:42:57.687 32378-32378/com.cars.evd.dealership
> E/AndroidRuntime: FATAL EXCEPTION: main
>     Process: com.cars.evd.dealership, PID: 32378
>     java.lang.RuntimeException: Unable to start activity ComponentInfo{com.cars.evd.dealership/com.cars.evd.dealership.main.SignIn}:
> 安卓.view.InflateException: Binary XML file line #53: Binary XML
> file line #53: Error inflating class info.hoang8f.widget.FButton
>         at 安卓.app.ActivityThread.performLaunchActivity(ActivityThread.java:2778)
>         at 安卓.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
>         at 安卓.app.ActivityThread.-wrap11(Unknown Source:0)
>         at 安卓.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
>         at 安卓.os.Handler.dispatchMessage(Handler.java:106)
>         at 安卓.os.Looper.loop(Looper.java:164)
>         at 安卓.app.ActivityThread.main(ActivityThread.java:6494)
>         at java.lang.reflect.Method.invoke(Native Method)
>         at com.安卓.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
>         at com.安卓.internal.os.ZygoteInit.main(ZygoteInit.java:807)
>      Caused by: 安卓.view.InflateException: Binary XML file line #53: Binary XML file line #53: Error inflating class info.hoang8f.widget.FButton
>      Caused by: 安卓.view.InflateException: Binary XML file line #53: Error inflating class info.hoang8f.widget.FButton
>      Caused by: java.lang.reflect.InvocationTargetException
>         at java.lang.reflect.Constructor.newInstance0(Native Method)
>         at java.lang.reflect.Constructor.newInstance(Constructor.java:334)
>         at 安卓.view.LayoutInflater.createView(LayoutInflater.java:647)
>         at 安卓.view.LayoutInflater.createViewFromTag(LayoutInflater.java:790)
>         at 安卓.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
>         at 安卓.view.LayoutInflater.rInflate(LayoutInflater.java:863)
>         at 安卓.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
>         at 安卓.view.LayoutInflater.inflate(LayoutInflater.java:515)
>         at 安卓.view.LayoutInflater.inflate(LayoutInflater.java:423)
>         at 安卓.view.LayoutInflater.inflate(LayoutInflater.java:374)
>         at 安卓.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)
>         at 安卓.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
>         at com.cars.evd.dealership.main.SignIn.onCreate(SignIn.java:25)
>         at 安卓.app.Activity.performCreate(Activity.java:7009)
>         at 安卓.app.Activity.performCreate(Activity.java:7000)
>         at 安卓.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
>         at 安卓.app.ActivityThread.performLaunchActivity(ActivityThread.java:2731)
>         at 安卓.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
>         at 安卓.app.ActivityThread.-wrap11(Unknown Source:0)
>         at 安卓.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
>         at 安卓.os.Handler.dispatchMessage(Handler.java:106)
>         at 安卓.os.Looper.loop(Looper.java:164)
>         at 安卓.app.ActivityThread.main(ActivityThread.java:6494)
>         at java.lang.reflect.Method.invoke(Native Method)
>         at com.安卓.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
>         at com.安卓.internal.os.ZygoteInit.main(ZygoteInit.java:807)
>      Caused by: java.lang.UnsupportedOperationException: Can't convert value at index 1 to color: type=0x5
>         at 安卓.content.res.TypedArray.getColor(TypedArray.java:473)
>         at info.hoang8f.widget.FButton.parseAttrs(FButton.java:116)
>         at info.hoang8f.widget.FButton.<init>(FButton.java:52)
>         at java.lang.reflect.Constructor.newInstance0(Native Method) 
>         at java.lang.reflect.Constructor.newInstance(Constructor.java:334) 
>         at 安卓.view.LayoutInflater.createView(LayoutInflater.java:647) 
>         at 安卓.view.LayoutInflater.createViewFromTag(LayoutInflater.java:790) 
>         at 安卓.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730) 
>         at 安卓.view.LayoutInflater.rInflate(LayoutInflater.java:863) 
>         at 安卓.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824) 
>         at 安卓.view.LayoutInflater.inflate(LayoutInflater.java:515) 
>         at 安卓.view.LayoutInflater.inflate(LayoutInflater.java:423) 
>         at 安卓.view.LayoutInflater.inflate(LayoutInflater.java:374) 
>         at 安卓.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) 
>         at 安卓.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 
>         at com.cars.evd.dealership.main.SignIn.onCreate(SignIn.java:25) 
>         at 安卓.app.Activity.performCreate(Activity.java:7009) 
>         at 安卓.app.Activity.performCreate(Activity.java:7000) 
>         at 安卓.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214) 
>         at 安卓.app.ActivityThread.performLaunchActivity(ActivityThread.java:2731) 
>         at 安卓.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856) 
>         at 安卓.app.ActivityThread.-wrap11(Unknown Source:0) 
>         at 安卓.app.ActivityThread$H.handleMessage(ActivityThread.java:1589) 
>         at 安卓.os.Handler.dispatchMessage(Handler.java:106) 
>         at 安卓.os.Looper.loop(Looper.java:164) 
>         at 安卓.app.ActivityThread.main(ActivityThread.java:6494) 
>         at java.lang.reflect.Method.invoke(Native Method) 
>         at com.安卓.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 
>         at com.安卓.internal.os.ZygoteInit.main(ZygoteInit.java:807)

清单

<application
    安卓:allowBackup="true"
    安卓:icon="@mipmap/ic_launcher"
    安卓:label="@string/app_name"
    安卓:roundIcon="@mipmap/ic_launcher_round"
    安卓:supportsRtl="true"
    安卓:theme="@style/AppTheme">
    <activity 安卓:name=".MainActivity">
        <intent-filter>
            <action 安卓:name="安卓.intent.action.MAIN" />
            <category 安卓:name="安卓.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity 安卓:name=".SignIn">
    <intent-filter>
        <action 安卓:name="安卓.intent.action.MAIN" />
    </intent-filter>
</activity>
</application> 
</manifest>

主要活动。Java

Button btnSignIn, btnSignUp;
TextView txtSlogan;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    btnSignIn = (Button) findViewById(R.id.btnSignIn);
    btnSignUp = (Button) findViewById(R.id.btnSignUp);

    txtSlogan = (TextView) findViewById(R.id.txtSlogan);
    Typeface face = Typeface.createFromAsset(getAssets(), "fonts/NABILA.TTF");
    txtSlogan.setTypeface(face);


    btnSignUp.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Intent SignUp = new Intent(MainActivity.this, SignUp.class);
            startActivity(SignUp);
        }
    });

    btnSignIn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Intent SignIn = new Intent(MainActivity.this, SignIn.class);
            startActivity(SignIn);
        }
    });

} }

主要活动。xml

<LinearLayout
    安卓:orientation="vertical"
    安卓:layout_centerInParent="true"
    安卓:layout_width="wrap_content"
    安卓:layout_height="wrap_content">

    <ImageView
        安卓:id="@+id/imageView"
        安卓:layout_width="200dp"
        安卓:layout_height="200dp"
        安卓:src="@drawable/logo" />

    <TextView
        安卓:id="@+id/txtSlogan"
        安卓:layout_width="200dp"
        安卓:layout_height="wrap_content"
        安卓:gravity="center"
        安卓:text="@string/slogan"
        安卓:textColor="@安卓:color/white" />
</LinearLayout>

<LinearLayout
    安卓:orientation="horizontal"
    安卓:layout_alignParentBottom="true"
    安卓:weightSum="2"
    安卓:layout_width="match_parent"
    安卓:layout_height="wrap_content">

    <Button
        安卓:id="@+id/btnSignUp"
        style="@style/Widget.AppCompat.Button"
        安卓:layout_width="0dp"
        安卓:layout_height="wrap_content"
        安卓:layout_margin="8dp"
        安卓:layout_weight="1"
        安卓:background="@color/btnSignActive"
        安卓:text="@string/SignUp"
        安卓:textColor="@安卓:color/white"
       />

    <Button
        安卓:id="@+id/btnSignIn"
        style="@style/Widget.AppCompat.Button"
        安卓:layout_width="0dp"
        安卓:layout_height="wrap_content"
        安卓:layout_margin="8dp"
        安卓:layout_weight="1"
        安卓:background="@color/btnSignActive"
        安卓:text="@string/SignIn"
        安卓:textColor="@安卓:color/white"
       />
</LinearLayout>

签名。Java

public class SignIn extends AppCompatActivity {
EditText edtemail, edtPassword;
Button btnSignIn; 
@Override
protected void onCreate(Bundle saveInstanceState) {
    super.onCreate(saveInstanceState);
    setContentView(R.layout.activity_sign_in);

    edtPassword = (MaterialEditText) findViewById(R.id.edtPassword);
    edtemail = (MaterialEditText) findViewById(R.id.edtemail);
    btnSignIn = (Button) findViewById(R.id.btnSignIn);


    //Init Firebase
    final FirebaseDatabase database = FirebaseDatabase.getInstance();
    final DatabaseReference table_user = database.getReference("User");

    btnSignIn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            final ProgressDialog mDialog = new ProgressDialog(SignIn.this);
            mDialog.setMessage("Please Wait...");
            mDialog.show();

            table_user.addValueEventListener(new ValueEventListener() {

                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {

                    //check if user not exist in database
                    if(dataSnapshot.child(edtemail.getText().toString()).exists()) {
                        //get user information
                        mDialog.dismiss();
                        User user = dataSnapshot.child(edtemail.getText().toString()).getValue(User.class);
                        assert user != null;
                        user.setName(edtemail.getText().toString());
                        if (user.getPassword().equals(edtPassword.getText().toString())) {
                        } else {
                            Toast.makeText(SignIn.this, "Wrong Password !", Toast.LENGTH_SHORT).show();
                        }
                    }else{
                        Toast.makeText(SignIn.this, "User not exist in Database !", Toast.LENGTH_SHORT).show();
                    }
                }

                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            });
        }
    });

} }

签名。xml

<LinearLayout
    安卓:orientation="vertical"
    安卓:layout_marginLeft="8dp"
    安卓:layout_marginRight="8dp"
    安卓:layout_centerInParent="true"
    安卓:layout_width="match_parent"
    安卓:layout_height="wrap_content">

    <com.rengwuxian.materialedittext.MaterialEditText
        安卓:id="@+id/edtemail"
        安卓:hint="@string/name_of_e_mail"
        安卓:layout_width="match_parent"
        安卓:layout_height="wrap_content"
        安卓:textColorHint="@安卓:color/white"
        安卓:text="@string/daniel25_gmail_com"
        安卓:textColor="@安卓:color/white"
        安卓:textSize="34sp"
        安卓:inputType="phone"
        app:met_baseColor="@安卓:color/white"
        app:met_floatingLabel="highlight"
        app:met_maxCharacters="11"
        app:met_primaryColor="@安卓:color/white"
        app:met_singleLineEllipsis="true"
        />

    <com.rengwuxian.materialedittext.MaterialEditText
        安卓:id="@+id/edtPassword"
        安卓:hint="@string/password"
        安卓:layout_width="match_parent"
        安卓:layout_height="wrap_content"
        安卓:textColorHint="@安卓:color/white"
        安卓:text="@string/_1234"
        安卓:textColor="@安卓:color/white"
        安卓:textSize="34sp"
        安卓:inputType="textPassword"
        app:met_baseColor="@安卓:color/white"
        app:met_floatingLabel="highlight"
        app:met_maxCharacters="11"
        app:met_primaryColor="@安卓:color/white"
        app:met_singleLineEllipsis="true"
        />

</LinearLayout>
<info.hoang8f.widget.FButton
    安卓:id="@+id/btnSignIn"
    安卓:text="@string/SignIn"
    安卓:textColor="@安卓:color/white"
    安卓:layout_marginRight="8dp"
    安卓:layout_marginLeft="8dp"
    安卓:layout_alignParentBottom="true"
    安卓:layout_width="match_parent"
    安卓:layout_height="wrap_content"
    安卓:layout_margin="8dp"
    app:buttonColor="@color/btnSignActive"
    app:shadowColor="@安卓:color/black"
    app:shadowEnabled="true"
    app:shadowHeight="5dp"
    app:cornerRadius="4dp"
    /> </RelativeLayout>

我花了一个月的时间试图弄清楚为什么会出现错误,但结果却没有好结果


共 (0) 个答案