如何修复以下类无法在android中实例化

时间:2015-07-02 08:27:33

标签: android android-menu android-search

我正在创建一个应用程序,包括从here下载的操作栏上的搜索小部件,我已将其放在我的layout.xml中,但它在xml上显示错误名为

无法实例化以下类:无法实例化以下类: - com.milan.searchmenu.persistentsearch.SearchBox(Open Class,Show Error Log) 有关详细信息,请参阅错误日志(窗口>显示视图)。 提示:在Eclipse中显示时,在自定义视图中使用View.isInEditMode()来跳过代码 java.lang.NullPointerException 通过运行应用程序也运行时出现空指针异常,任何人都可以告诉我如何解决这个问题: 这是我的活动:

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.manual);
        ActionBar actionbar;
        actionbar = getActionBar();
        search = (SearchBox) findViewById(R.id.searchbox);
        search.enableVoiceRecognition(this);
        for(int x = 0; x < 10; x++){
            com.milan.searchmenu.persistentsearch.SearchResult option = new SearchResult("Result " + Integer.toString(x), getResources().getDrawable(R.drawable.ic_history));
            search.addSearchable(option);
        }       
        search.setMenuListener(new MenuListener(){

            @Override
            public void onMenuClick() {
                //Hamburger has been clicked
                Toast.makeText(Manual.this, "Menu click", Toast.LENGTH_LONG).show();                
            }

        });

        search.setSearchListener(new SearchListener() {

            @Override
            public void onSearchTermChanged() {
                // TODO Auto-generated method stub

            }

            @Override
            public void onSearchOpened() {
                // TODO Auto-generated method stub

            }

            @Override
            public void onSearchClosed() {
                // TODO Auto-generated method stub

            }

            @Override
            public void onSearchCleared() {
                // TODO Auto-generated method stub

            }

            @Override
            public void onSearch(String result) {
                Toast.makeText(Manual.this, result +" Searched", Toast.LENGTH_LONG).show();

            }
        });

这是我的XML:

<RelativeLayout
        android:id="@+id/Relative_layout"
        android:layout_width="wrap_content"
        android:layout_height="51dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true" 
        android:background="#673AB7">

        <com.milan.searchmenu.persistentsearch.SearchBox
        android:layout_width="wrap_content"
        android:id="@+id/searchbox"
        android:layout_height="wrap_content">
        </com.milan.searchmenu.persistentsearch.SearchBox>
    </RelativeLayout>


   <android.support.v4.view.ViewPager
       android:id="@+id/pager"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_below="@+id/pager_sliding_tab_strip">

   </android.support.v4.view.ViewPager>

   <com.milan.tabs.pagerslidingstrip.PagerSlidingTabStrip
       android:id="@+id/pager_sliding_tab_strip"
       android:layout_width="match_parent"
       android:layout_height="50dp"
       android:layout_alignParentLeft="true"
       android:layout_below="@+id/Relative_layout"
       android:textSize="15dp"
       app:pstsShouldExpand="true"
       app:pstsDividerColor="#B39DDB"
       app:pstsIndicatorHeight="45dp" 
       android:background="#673AB7"
       app:pstsIndicatorColor="#FFFFFF">



   </com.milan.tabs.pagerslidingstrip.PagerSlidingTabStrip>



    }

2 个答案:

答案 0 :(得分:0)

您需要将下载的库添加为模块的依赖项。在Android Studio中执行以下操作

  1. 将库放在项目的某个位置。
  2. 右键单击库并选择&#34;添加为库&#34;
  3. 选择您的主要模块:通常称为app或mobile。
  4. 重建,它应该工作

答案 1 :(得分:0)

从帖子中我理解的是,在开发应用程序而不是运行时,您遇到了这个问题。

如果问题是布局文件未在设计视图中加载,那么在布局中使用的SearchBox控件将是一个问题。

com.milan.searchmenu.persistentsearch.SearchBox

在自定义视图中,在设计视图中渲染时,它无法完全运行。例如,如果自定义视图正在从资产等访问某些内容,那么该依赖项将仅在运行时解析,而不是在设计模式下解析,因此您会收到此错误。

因此,为了修复,您需要将这些代码放在View.isInEditMode()的if块中。