【发布时间】:2013-07-17 06:54:59
【问题描述】:
以下是获取 searchmanagerinstance 并调用触发器搜索的代码: 使用 startsearch 调用而不是 triggersearch 也可以正常工作
String searchQuery = "dollar in rupees\n";
SearchManager s = (SearchManager) this.getSystemService(Context.SEARCH_SERVICE);
// s.startSearch(searchQuery, false , null, null, true);
s.triggerSearch(searchQuery, new ComponentName(getApplicationContext().getPackageName(), "MainAcitivity" ), null);
这是我在执行这段代码时得到的错误:
07-17 12:17:04.650: E/AndroidRuntime(1265): java.lang.IllegalStateException: Could not execute method of the activity
07-17 12:17:04.650: E/AndroidRuntime(1265): at android.view.View$1.onClick(View.java:3591)
07-17 12:17:04.650: E/AndroidRuntime(1265): at android.view.View.performClick(View.java:4084)
07-17 12:17:04.650: E/AndroidRuntime(1265): at android.view.View$PerformClick.run(View.java:16966)
07-17 12:17:04.650: E/AndroidRuntime(1265): at android.os.Handler.handleCallback(Handler.java:615)
07-17 12:17:04.650: E/AndroidRuntime(1265): at android.os.Handler.dispatchMessage(Handler.java:92)
07-17 12:17:04.650: E/AndroidRuntime(1265): at android.os.Looper.loop(Looper.java:137)
07-17 12:17:04.650: E/AndroidRuntime(1265): at android.app.ActivityThread.main(ActivityThread.java:4745)
07-17 12:17:04.650: E/AndroidRuntime(1265): at java.lang.reflect.Method.invokeNative(Native Method)
07-17 12:17:04.650: E/AndroidRuntime(1265): at java.lang.reflect.Method.invoke(Method.java:511)
07-17 12:17:04.650: E/AndroidRuntime(1265): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
07-17 12:17:04.650: E/AndroidRuntime(1265): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
07-17 12:17:04.650: E/AndroidRuntime(1265): at dalvik.system.NativeStart.main(Native Method)
07-17 12:17:04.650: E/AndroidRuntime(1265): Caused by: java.lang.reflect.InvocationTargetException
07-17 12:17:04.650: E/AndroidRuntime(1265): at java.lang.reflect.Method.invokeNative(Native Method)
07-17 12:17:04.650: E/AndroidRuntime(1265): at java.lang.reflect.Method.invoke(Method.java:511)
07-17 12:17:04.650: E/AndroidRuntime(1265): at android.view.View$1.onClick(View.java:3586)
07-17 12:17:04.650: E/AndroidRuntime(1265): ... 11 more
07-17 12:17:04.650: E/AndroidRuntime(1265): Caused by: java.lang.NullPointerException
07-17 12:17:04.650: E/AndroidRuntime(1265): at android.app.SearchManager.triggerSearch(SearchManager.java:635)
【问题讨论】:
-
试试
ComponentName(getApplicationContext().getPackageName(), MainActivity.class ) -
试试 SearchManager s = (SearchManager) MainAcitivity.this.getSystemService(Context.SEARCH_SERVICE);
-
没有与之匹配的构造函数,最接近的应该是这样的: new ComponentName(getApplicationContext(), MainActivity.class) Still got NPE
标签: android android-searchmanager android-search