长按编辑 View 时 Android 应用崩溃

标签 android android-activity android-actionbar android-edittext

我是 Android 的新手,正在开发我的第一个应用程序。我的主要 Activity (登录 Activity )没有 ActionBar,所有 Activity 都带有操作栏。当我长按编辑文本时,应用程序崩溃并出现下面提到的 logcat。 我不知道这个错误的原因是什么。请帮我找到它。

 09-28 14:45:26.871  22863-22863/com.abc.app E/AndroidRuntime﹕ FATAL EXCEPTION: main
 Process: com.abc.app, PID: 22863
 android.view.InflateException: Binary XML file line #17: Error inflating class <unknown>
    at android.view.LayoutInflater.createView(LayoutInflater.java:620)
    at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:469)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
    at android.widget.Editor$ActionPopupWindow.initContentView(Editor.java:3100)
    at android.widget.Editor$PinnedPopupWindow.<init>(Editor.java:2313)
    at android.widget.Editor$ActionPopupWindow.<init>(Editor.java:3073)
    at android.widget.Editor$ActionPopupWindow.<init>(Editor.java:3073)
    at android.widget.Editor$HandleView.showActionPopupWindow(Editor.java:3310)
    at android.widget.Editor$InsertionHandleView.showWithActionPopup(Editor.java:3602)
    at android.widget.Editor$InsertionPointCursorController.showWithActionPopup(Editor.java:3829)
    at android.widget.Editor.performLongClick(Editor.java:859)
    at android.widget.TextView.performLongClick(TextView.java:8666)
    at android.view.View$CheckForLongPress.run(View.java:18677)
    at android.os.Handler.handleCallback(Handler.java:733)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:149)
    at android.app.ActivityThread.main(ActivityThread.java:5257)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
    at dalvik.system.NativeStart.main(Native Method)
 Caused by: java.lang.reflect.InvocationTargetException
    at java.lang.reflect.Constructor.constructNative(Native Method)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at android.view.LayoutInflater.createView(LayoutInflater.java:594)
    at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:469)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
    at android.widget.Editor$ActionPopupWindow.initContentView(Editor.java:3100)
    at android.widget.Editor$PinnedPopupWindow.<init>(Editor.java:2313)
    at android.widget.Editor$ActionPopupWindow.<init>(Editor.java:3073)
    at android.widget.Editor$ActionPopupWindow.<init>(Editor.java:3073)
    at android.widget.Editor$HandleView.showActionPopupWindow(Editor.java:3310)
    at android.widget.Editor$InsertionHandleView.showWithActionPopup(Editor.java:3602)
    at android.widget.Editor$InsertionPointCursorController.showWithActionPopup(Editor.java:3829)
    at android.widget.Editor.performLongClick(Editor.java:859)
    at android.widget.TextView.performLongClick(TextView.java:8666)
    at android.view.View$CheckForLongPress.run(View.java:18677)
    at android.os.Handler.handleCallback(Handler.java:733)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:149)
    at android.app.ActivityThread.main(ActivityThread.java:5257)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
    at dalvik.system.NativeStart.main(Native Method)
 Caused by: java.lang.ArrayIndexOutOfBoundsException: length=15; index=687
    at android.content.res.StringBlock.get(StringBlock.java:65)
    at android.content.res.XmlBlock$Parser.getPooledString(XmlBlock.java:458)
    at android.content.res.TypedArray.loadStringValueAt(TypedArray.java:721)
    at android.content.res.TypedArray.getString(TypedArray.java:125)
    at android.widget.TextView.<init>(TextView.java:1049)
    at android.widget.TextView.<init>(TextView.java:635)
    at java.lang.reflect.Constructor.constructNative(Native Method)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at android.view.LayoutInflater.createView(LayoutInflater.java:594)
    at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:469)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
    at android.widget.Editor$ActionPopupWindow.initContentView(Editor.java:3100)
    at android.widget.Editor$PinnedPopupWindow.<init>(Editor.java:2313)
    at android.widget.Editor$ActionPopupWindow.<init>(Editor.java:3073)
    at android.widget.Editor$ActionPopupWindow.<init>(Editor.java:3073)
    at android.widget.Editor$HandleView.showActionPopupWindow(Editor.java:3310)
    at android.widget.Editor$InsertionHandleView.showWithActionPopup(Editor.java:3602)
    at android.widget.Editor$InsertionPointCursorController.showWithActionPopup(Editor.java:3829)
    at android.widget.Editor.performLongClick(Editor.java:859)
    at android.widget.TextView.performLongClick(TextView.java:8666)
    at android.view.View$CheckForLongPress.run(View.java:18677)
    at android.os.Handler.handleCallback(Handler.java:733)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:149)
    at android.app.ActivityThread.main(ActivityThread.java:5257)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteI`enter code here`nit.java:793)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
    at dalvik.system.NativeStart.main(Native Method)

主要 Activity .java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    getActionBar().hide();
    setContentView(R.layout.activity_main);
}

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/activity_background"
android:orientation="vertical"
android:theme="@style/ThemeOverlay.AppCompat.Dark"
tools:context=".MainActivity">


<ImageView
    android:id="@+id/loginImageView"
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:layout_alignParentStart="true"
    android:layout_alignParentTop="true"
    android:layout_marginLeft="-2dp"
    android:layout_marginTop="-12dp"
    android:src="@drawable/login_screen" />

<EditText
    style="@style/LoginEditTxt"
    android:id="@+id/userMail"
    android:layout_below="@+id/loginImageView"
    android:layout_marginBottom="10dp"
    android:layout_marginTop="20dp"
    android:ems="10"
    android:hint="@string/hint_user_name"
    android:inputType="textEmailAddress"
    android:textAlignment="center"
    /></LinearLayout>

最佳答案

我猜你的风格或主题有问题。

我建议去掉样式试试。 如果可行,您应该找出导致问题的值并提出一个新问题。

This SO Answer 也可能对您有所帮助。

似乎某些字体系列会导致崩溃。

关于长按编辑 View 时 Android 应用崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32819628/

相关文章:

android - 如何在关闭应用程序并显示之前保存的实例时恢复用户之前的数据?

android - 当我更改父项时,popupMenuStyle 不起作用 ="@style/Theme.AppCompat.Light.DarkActionBar">

Android:SearchView组件更改图标(无ActionBar)

java - 安卓Java : best practice for common code in overrides for all Activities

android - 使用 gradle 4.6 通过终端编译 Android 项目时出错

android - 如果在我的 Android 应用程序中按下电源按钮 (x) 次,如何启动 Activity ?

android - 通过Android应用程序登录https网站

java - 关闭另一个应用程序后如何恢复数据

android - Android 支持库中的 ActionBar#setDefaultDisplayHomeAsUpEnabled 是什么?

java - Android如何通过JNi示例使用libjpeg-turbo库