2011-01-18 2 views
1

Salut, j'essaie de mettre en place une recherche rapide pour mon application, mais je reçois seulement une ClassNotFoundException après avoir cliqué sur le bouton de recherche. Je veux juste montrer l'entrée de l'utilisateur dans un journal. Voici ce que je suis arrivé à ce jour:problème avec la recherche rapide android

Manifets.xml

<activity android:name=".SearchActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.SEARCH" /> 
      </intent-filter> 

      <meta-data android:name="android.app.searchable" 
         android:resource="@xml/searchable" /> 
     </activity> 

     <!-- declare the default searchable Activity for the whole app --> 
     <meta-data android:name="android.app.default_searchable" 
        android:value=".SearchActivity"/> 

searchable.xml

<searchable xmlns:android="http://schemas.android.com/apk/res/android" 
    android:label="@string/search_label" 
    android:hint="@string/search_hint" > 
</searchable> 

SearchActivity.java

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.searchresults); 

     final Intent queryIntent = getIntent(); 
     final String queryAction = queryIntent.getAction(); 
     if (Intent.ACTION_SEARCH.equals(queryAction)) { 
      String searchKeywords = queryIntent.getStringExtra(SearchManager.QUERY); 
      Log.i("YOU ENTERED", searchKeywords); 
     } 
    } 

Qu'est-ce que je fais mal? Toute aide sera vraiment appréciée.

Merci!

EDIT: voici le fichier journal:

01-18 13:34:03.479: ERROR/AndroidRuntime(28349): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{se.madcoderz.searchExample/se.madcoderz.searchExample.SearchActivity}: java.lang.ClassNotFoundException: se.madcoderz.searchExample.SearchActivity in loader dalvik.system.PathClassLoader[/data/app/se.madcoderz.searchExample-2.apk] 
01-18 13:34:03.479: ERROR/AndroidRuntime(28349):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585) 
01-18 13:34:03.479: ERROR/AndroidRuntime(28349):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
01-18 13:34:03.479: ERROR/AndroidRuntime(28349):  at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
01-18 13:34:03.479: ERROR/AndroidRuntime(28349):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
01-18 13:34:03.479: ERROR/AndroidRuntime(28349):  at android.os.Handler.dispatchMessage(Handler.java:99) 
01-18 13:34:03.479: ERROR/AndroidRuntime(28349):  at android.os.Looper.loop(Looper.java:123) 
01-18 13:34:03.479: ERROR/AndroidRuntime(28349):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
01-18 13:34:03.479: ERROR/AndroidRuntime(28349):  at java.lang.reflect.Method.invokeNative(Native Method) 
01-18 13:34:03.479: ERROR/AndroidRuntime(28349):  at java.lang.reflect.Method.invoke(Method.java:521) 
01-18 13:34:03.479: ERROR/AndroidRuntime(28349):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
01-18 13:34:03.479: ERROR/AndroidRuntime(28349):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
01-18 13:34:03.479: ERROR/AndroidRuntime(28349):  at dalvik.system.NativeStart.main(Native Method) 
01-18 13:34:03.479: ERROR/AndroidRuntime(28349): Caused by: java.lang.ClassNotFoundException: se.madcoderz.searchExample.SearchActivity in loader dalvik.system.PathClassLoader[/data/app/se.madcoderz.searchExample-2.apk] 
01-18 13:34:03.479: ERROR/AndroidRuntime(28349):  at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243) 
01-18 13:34:03.479: ERROR/AndroidRuntime(28349):  at java.lang.ClassLoader.loadClass(ClassLoader.java:573) 
01-18 13:34:03.479: ERROR/AndroidRuntime(28349):  at java.lang.ClassLoader.loadClass(ClassLoader.java:532) 
01-18 13:34:03.479: ERROR/AndroidRuntime(28349):  at android.app.Instrumentation.newActivity(Instrumentation.java:1021) 
01-18 13:34:03.479: ERROR/AndroidRuntime(28349):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577) 
01-18 13:34:03.479: ERROR/AndroidRuntime(28349):  ... 11 more 

La version SDK j'utilise est de 1,6

+1

Pouvez-vous fournir la sortie logcat? – Dave

+0

ce genre de problème peut se produire dans Android version 2.2, s'il vous plaît vérifier votre version sdk est 2.2 ou quelque chose d'autre. –

+0

vérifier les modifications – madcoderz

Répondre

1

Eh bien je résolu mon problème. Dans le Mainefest.xml j'ai changé le nom de l'activité à <activity android:name=".searchExample.SearchActivity"> je l'ai fait la même chose dans les méta-données en dehors de l'activité:

<!-- declare the default searchable Activity for the whole app --> 
     <meta-data android:name="android.app.default_searchable" 
        android:value=".searchExample.SearchActivity"/> 

la chose est que Android définit le nom du package dans le Manifest sous Manifest Attributs généraux et j'ai changé certains noms de paquets dans mon projet, mais le manifeste n'a pas été mis à jour avec mes changements. C'est pourquoi j'ai dû ajouter ce ".searchExample" qui est le nom de famille dans le paquet où cette activité est.

Mais de toute façon c'est aussi la raison pour laquelle nous devons ajouter un point au début d'un nom d'activité dans le manifeste, ce que je n'avais pas jusqu'à aujourd'hui.

+0

Cela m'a grandement aidé. J'ai également eu le même problème, qualifiant l'activité avec le nom du package complet aidé. – Santthosh

Questions connexes