【发布时间】:2018-10-29 20:19:02
【问题描述】:
' android.view.InflateException : Binary XML file line #54 : Error inflating class EditText ' 因项目而在登录屏幕完成并运行时生成。 我该如何解决?
以下是错误内容及来源。
错误 : E/AndroidRuntime: FATAL EXCEPTION: main 进程:com.example.min.project,PID:2930 java.lang.RuntimeException:无法启动活动 组件信息{com.example.min.project/com.example.min.project.LoginActivity}: android.view.InflateException:二进制 XML 文件第 54 行:错误 膨胀类 EditText 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 在 android.app.ActivityThread.access$800(ActivityThread.java:151) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:135) 在 android.app.ActivityThread.main(ActivityThread.java:5254) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 原因:android.view.InflateException:二进制 XML 文件第 54 行:膨胀类 EditText 时出错 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:763) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:809) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:809) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:504) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:414) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:365) 在 android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) 在 android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 在 com.example.min.project.LoginActivity.onCreate(LoginActivity.java:24) 在 android.app.Activity.performCreate(Activity.java:5990) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 在 android.app.ActivityThread.access$800(ActivityThread.java:151) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:135) 在 android.app.ActivityThread.main(ActivityThread.java:5254) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 引起:android.content.res.Resources$NotFoundException:资源 “com.example.min.project:drawable/round_background”(7f060068)不是 可绘制对象(颜色或路径):TypedValue{t=0x1/d=0x7f060068 a=-1 r=0x7f060068} 在 android.content.res.Resources.loadDrawableForCookie(Resources.java:2441) 在 android.content.res.Resources.loadDrawable(Resources.java:2381) 在 android.content.res.TypedArray.getDrawable(TypedArray.java:749) 在 android.view.View.(View.java:3737) 在 android.widget.TextView.(TextView.java:637) 在 android.widget.EditText.(EditText.java:65) 在 android.widget.EditText.(EditText.java:61) 在 android.support.v7.widget.AppCompatEditText.(AppCompatEditText.java:64) 在 android.support.v7.widget.AppCompatEditText.(AppCompatEditText.java:60) 在 android.support.v7.app.AppCompatViewInflater.createEditText(AppCompatViewInflater.java:191) 在 android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:113) 在 android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelegateImplV9.java:1035) 在 android.support.v7.app.AppCompatDelegateImplV9.onCreateView(AppCompatDelegateImplV9.java:1092) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:725) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:809) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:809) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:504) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:414) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:365) 在 android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) 在 android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 在 com.example.min.project.LoginActivity.onCreate(LoginActivity.java:24) 在 android.app.Activity.performCreate(Activity.java:5990) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 在 android.app.ActivityThread.access$800(ActivityThread.java:151) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:135) 在 android.app.ActivityThread.main(ActivityThread.java:5254) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
登录活动来源:
package com.example.min.project;
import android.content.Intent;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.toolbox.Volley;
import org.json.JSONObject;
public class LoginActivity extends AppCompatActivity {
private AlertDialog dialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
final EditText idText = (EditText) findViewById(R.id.idText);
final EditText passwordText = (EditText)findViewById(R.id.passwordText);
final Button loginButton = (Button) findViewById(R.id.loginButton);
loginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String id = idText.getText().toString();
String pw = passwordText.getText().toString();
Response.Listener<String> responseLister = new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try
{
JSONObject jsonResponse = new JSONObject(response);
boolean success = jsonResponse.getBoolean("success");
if(success){
AlertDialog.Builder builder = new AlertDialog.Builder(LoginActivity.this);
dialog = builder.setMessage("success login")
.setPositiveButton("확인", null)
.create();
dialog.show();
Intent intent = new Intent(LoginActivity.this, NoticeActivity.class);
LoginActivity.this.startActivity(intent);
finish();
}
else{
AlertDialog.Builder builder = new AlertDialog.Builder(LoginActivity.this);
dialog = builder.setMessage("Please check your ID and password.")
.setNegativeButton("Retry", null)
.create();
dialog.show();
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
};
LoginRequest loginRequest = new LoginRequest(id, pw, responseLister);
RequestQueue queue = Volley.newRequestQueue(LoginActivity.this);
queue.add(loginRequest);
}
});
}
protected void onStop(){
super.onStop();
if(dialog != null)
{
dialog.dismiss();
dialog = null;
}
}
}
登录.xml:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".LoginActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:layout_editor_absoluteX="0dp"
tools:layout_editor_absoluteY="51dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="227dp"
android:background="@color/colorLogin"
android:orientation="vertical">
<ImageView
android:layout_width="125dp"
android:layout_height="125dp"
android:layout_gravity="center"
android:layout_marginTop="20dp"
android:src="@drawable/sunmoon" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="10dp"
android:text="scholl"
android:textColor="#000000"
android:textSize="25dp"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="attend system"
android:textColor="#000000"
android:textSize="18dp"
android:textStyle="bold" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:id="@+id/idText"
android:layout_width="230dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="50dp"
android:background="@drawable/round_background"
android:drawableLeft="@drawable/ic_person_black_24dp"
android:hint="Id"
android:padding="10dp"
android:textColor="#808080"
android:textColorHint="#808080" />
<EditText
android:id="@+id/passwordText"
android:layout_width="230dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="10dp"
android:background="@drawable/round_background"
android:drawableLeft="@drawable/ic_lock_black_24dp"
android:hint="Pw"
android:inputType="textPassword"
android:padding="10dp"
android:textColor="#808080"
android:textColorHint="#808080" />
<Button
android:id="@+id/loginButton"
android:layout_width="280dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="10dp"
android:background="@color/colorPrimaryDark"
android:text="login"
android:textColor="#ffffff"
android:textSize="20dp"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>
</android.support.constraint.ConstraintLayout>
【问题讨论】: