jeudi 24 mars 2011

Forcer une application android a se manifester !

Ce problème tout bête m'a laissé penaud quelques heures... Après avoir créé mon appli dans Eclipse, définit mon Activity dans le AndroidManifest.xml, puis lancé le projet... Rien. Et ça dans la sortie standard :

[2011-03-24 16:45:37 - Appli] Uploading Appli.apk onto device 'emulator-5554'
[2011-03-24 16:45:37 - Appli] Installing Appli.apk...
[2011-03-24 16:45:40 - Appli] Success!
[2011-03-24 16:45:40 - Appli] \Appli\bin\Appli.apk installed on device
[2011-03-24 16:45:40 - Appli] Done!

Après quelques ragequit, j'ai identifié la cause du problème. J'avais ceci dans mon AndroidManifest.xml :

<application [...] android:debuggable="true">
  <activity android:name="ContactList"></activity>
</application>

Pour dire à Android d'exécuter cette Activity, il faut ajouter un intent-filter :

<application [...] android:debuggable="true">
  <activity android:name="ContactList">
    <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>

  </activity>
</application>

On relance, et c'est réglé !

D'après ce que je comprend, un intent-filter permet à une Activity de "publier" quels sont les Intents qui vont pouvoir la réveiller. En l'occurence, un Intent d'exécution.

Aucun commentaire:

Enregistrer un commentaire