Android 为什么';LogCat不能告诉我代码中的错误在哪里吗

Android 为什么';LogCat不能告诉我代码中的错误在哪里吗,android,nullpointerexception,logcat,android-logcat,Android,Nullpointerexception,Logcat,Android Logcat,我正在努力。我试图运行github页面上给出的演示应用程序,但是我得到了这个异常,Logcat没有说明异常在我的代码中的位置 问题是如何找出错误所在,为什么会出现此错误,以及如何解决此问题。当然,这一切都是从知道错误在哪里开始的。 我猜: 屏幕截图中给出了我的项目结构,根据该结构,MainActivity应该具有完全限定的名称br.com.edsilfer.custom\u searchable\u demo.MainActivity但是在Logcat的错误消息中,它说无法。。。{br.com.

我正在努力。我试图运行github页面上给出的演示应用程序,但是我得到了这个异常,Logcat没有说明异常在我的代码中的位置

问题是如何找出错误所在,为什么会出现此错误,以及如何解决此问题。当然,这一切都是从知道错误在哪里开始的。

我猜:

屏幕截图中给出了我的项目结构,根据该结构,
MainActivity
应该具有完全限定的名称
br.com.edsilfer.custom\u searchable\u demo.MainActivity
但是在Logcat的错误消息中,它说
无法。。。{br.com.edsilfer.custom\u searchable\u demo/br.com.edsilfer.custom\u searchable\u demo.MainActivity}…
那么可能是我在某个地方写错了名字,比如在清单或其他地方?以防万一,我也在发布清单代码

LOGCAT:

活动\u a.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"

    android:layout_width="match_parent"
    android:layout_height="match_parent"

    android:layout_gravity="center_vertical"

    android:focusable="true"
    android:clickable="true"
    android:background="?android:attr/selectableItemBackground">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:gravity="center"
        android:layout_centerVertical="true"

        android:text="Custom Search demonstration application"
        android:textSize="24dp"/>
</RelativeLayout>
<menu
    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"
    tools:context="edsilfer.com.br.edsilfer.Main">

    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="@string/action_settings"

        tools:ignore="AppCompatResource" />

    <item
        android:id="@+id/action_search"
        android:orderInCategory="200"
        android:title="Search"
        android:icon="@drawable/ic_search_white_18dp"
        app:showAsAction="ifRoom"/>
</menu>

活动菜单.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"

    android:layout_width="match_parent"
    android:layout_height="match_parent"

    android:layout_gravity="center_vertical"

    android:focusable="true"
    android:clickable="true"
    android:background="?android:attr/selectableItemBackground">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:gravity="center"
        android:layout_centerVertical="true"

        android:text="Custom Search demonstration application"
        android:textSize="24dp"/>
</RelativeLayout>
<menu
    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"
    tools:context="edsilfer.com.br.edsilfer.Main">

    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="@string/action_settings"

        tools:ignore="AppCompatResource" />

    <item
        android:id="@+id/action_search"
        android:orderInCategory="200"
        android:title="Search"
        android:icon="@drawable/ic_search_white_18dp"
        app:showAsAction="ifRoom"/>
</menu>

edit3 因此,我下载了导入Android Studio的演示项目,从清单中删除了错误的活动行(见编辑2中)。启动了这个项目,它立刻就能工作

我还注意到您正在使用Eclipse。Eclipse不再受支持,您将迁移到Android Studio。这很可能是一个与此相关的问题,因为手动导入支持库可能会导致您刚才遇到的潜在错误

为了回答您的问题,为什么LogCat不告诉我代码中的错误在哪里?:它确实告诉您,但是,错误在支持库的源代码中。这(可能)是因为您正在使用Eclipse,并且可能由于使用过时的ADT插件而发生不兼容的支持库或其他编译器错误

编辑2 你想使用的那个库出了严重的问题。演示项目的清单包含以下行:

<activity  android:name=".ActivityA" android:theme="[...]" />

好的,我不知道您的xml(布局、菜单)代码,但请检查您的菜单是否如下所示:

<menu 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"
      tools:context=".BlockActivity" >

<item android:id="@+id/action_search"
      android:title="@string/search"
      android:orderInCategory="100"
      android:icon="@drawable/ic_action_search"
      app:showAsAction="always|collapseActionView"
      app:actionViewClass="android.support.v7.widget.SearchView"
      android:actionLayout="@layout/layout_search"
    />
</menu>

您应该在searchView中使用android支持小部件, 所以,试着检查一下你们的布局和菜单是否正确,若并没有,也写下你们的布局代码,因为你们的活动也应该正常工作


尊敬。

看看我以前的项目,清单中的
android:name=“MainActivity”
应该是
android:name=“br.com.edsilfer.custom\u searchable\u demo.MainActivity”
。因此,是的,使用完整的包名,然后查看错误是什么/如果是什么?然后,我建议对
提供者
名称也这样做,使用包括包在内的全名,看看是否有效。或者只放上android:name=“.MainActivity”,因为包是在前面声明的,或者如最后一条评论所示,但是也是一样。你能发布你的MainActivity的源代码和相应的布局文件吗?似乎您正在尝试使用非
工具栏的东西作为
操作栏
。好的,显示您的主要活动代码,应该有一些错误好的,我不确定,但在onCreate方法中,尝试在应用主题之前调用super.Oncreate为什么在最低API级别为22时需要使用支持小部件我不确定,但是如果你在应用主题中定义:android:theme=“@style/theme.AppCompat.Light.NoActionBar”,我想你也应该在xml中使用验证和限制,若它只适用于api级别22及以上,那个么主题应该是:android:theme=“@android:style/theme.Material.Light.NoActionBar”,正如示例中的android清单所示
<menu 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"
      tools:context=".BlockActivity" >

<item android:id="@+id/action_search"
      android:title="@string/search"
      android:orderInCategory="100"
      android:icon="@drawable/ic_action_search"
      app:showAsAction="always|collapseActionView"
      app:actionViewClass="android.support.v7.widget.SearchView"
      android:actionLayout="@layout/layout_search"
    />
</menu>