经过一段很长的研究,我决定问社区是否有人可以帮助我,我感到绝望...... (希望你能理解我的英语)
我在一家公司,他们给了我他们应用程序的旧资源,我必须编译和更新的来源。这是一个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开发的经验,所以我自己也想出了一切。这非常令人兴奋,但仍然非常复杂,这就是为什么我现在没有任何想法......)