更改活动时使用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) 个答案