ActionBarSherlock:SearchView上的NPE

时间:2014-05-02 15:11:49

标签: android maven nullpointerexception actionbarsherlock searchview

经过一段很长的研究,我决定问社区是否有人可以帮助我,我感到绝望...... (希望你能理解我的英语)

我在一家公司,他们给了我他们应用程序的旧资源,我必须编译和更新的来源。这是一个maven项目,我在尝试更新libs版本时遇到了一些问题,但我最终成功编译了应用程序,并在虚拟设备中启动它。 但是我仍然遇到了崩溃的事件:

05-02 10:38:51.515: E/AndroidRuntime(3379): FATAL EXCEPTION: main
05-02 10:38:51.515: E/AndroidRuntime(3379): java.lang.NullPointerException
05-02 10:38:51.515: E/AndroidRuntime(3379):     at com.actionbarsherlock.widget.SearchView.<init>(SearchView.java:268)
05-02 10:38:51.515: E/AndroidRuntime(3379):     at com.actionbarsherlock.widget.SearchView.<init>(SearchView.java:252)
05-02 10:38:51.515: E/AndroidRuntime(3379):     at com.vodkaster.android.ui.SearchFragment.onCreateOptionsMenu(SearchFragment.java:158)
05-02 10:38:51.515: E/AndroidRuntime(3379):     at android.support.v4.app.Watson.onCreatePanelMenu(Watson.java:55)
05-02 10:38:51.515: E/AndroidRuntime(3379):     at com.actionbarsherlock.ActionBarSherlock.callbackCreateOptionsMenu(ActionBarSherlock.java:560)
05-02 10:38:51.515: E/AndroidRuntime(3379):     at com.actionbarsherlock.internal.ActionBarSherlockNative.dispatchCreateOptionsMenu(ActionBarSherlockNative.java:64)
05-02 10:38:51.515: E/AndroidRuntime(3379):     at com.actionbarsherlock.app.SherlockFragmentActivity.onCreatePanelMenu(SherlockFragmentActivity.java:164)
05-02 10:38:51.515: E/AndroidRuntime(3379):     at com.android.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java:413)
05-02 10:38:51.515: E/AndroidRuntime(3379):     at com.android.internal.policy.impl.PhoneWindow.doInvalidatePanelMenu(PhoneWindow.java:775)

这两行位于actionbarsherlock的SearchView类中:

mQueryTextView = (SearchAutoComplete) findViewById(R.id.abs__search_src_text);
mQueryTextView.setSearchView(this);

R.id.abs__search_src_text给了我一个地址,但是mQueryTextView为null(解释了NPE)。 我认为ActionBarSherlock的资源没有正确加载或类似的东西.. 我不知道该怎么办,我花了整整两天的时间来解决这个问题:(

提前感谢您的帮助!

仅供参考:

项目结构:

Myapp-parent(pom.xml)

|

| __ Myapp-app(应用程序的核心,pom.xml引用父代的pom.xml)

|

| __ Myapp-instrumentation(pom.xml引用app的pom.xml)

来自pom.xml(父级)的有用行

<modelVersion>4.0.0</modelVersion>
<abs.version>4.4.0</abs.version>
<dependency>
  <groupId>com.actionbarsherlock</groupId>
  <artifactId>actionbarsherlock</artifactId>
  <version>${abs.version}</version>
  <exclusions>
    <exclusion>
      <groupId>com.google.android</groupId>
      <artifactId>support-v4</artifactId>
    </exclusion>
  </exclusions>
  <type>apklib</type>
</dependency>            

Android插件信息

<!--Android Plugin-->
<plugin>
    <groupId>com.jayway.maven.plugins.android.generation2</groupId>
    <artifactId>android-maven-plugin</artifactId>
    <version>${android-plugin.version}</version>
    <dependencies>
        <dependency>
            <groupId>net.sf.proguard</groupId>
            <artifactId>proguard-base</artifactId>
            <version>${proguard.version}</version>
        </dependency>
    </dependencies>
    <configuration>
        <sdk>
            <platform>${android.api}</platform>
        </sdk>
        <undeployBeforeDeploy>true</undeployBeforeDeploy>
    </configuration>
</plugin>

再次感谢您,任何帮助表示赞赏! :d (我之前没有Androïd开发的经验,所以我自己也想出了一切。这非常令人兴奋,但仍然非常复杂,这就是为什么我现在没有任何想法......)

0 个答案:

没有答案