2012-05-05 5 views
0

J'ai développé une application Android utilisant Eclipse qui fonctionne parfaitement sur l'appareil virtuel Android ou en l'exécutant sur mon smartphone en utilisant le mode Eclipse + USB Debugging activé. Cependant, lorsque j'installe l'application sur mon téléphone à l'aide d'un fichier apk signé résidant sur la carte SD et que j'essaie de le lancer, j'obtiens une erreur "Activity not found - lsp.workshop", et l'application ne sera pas start (lsp.workshop est le nom du package d'application).L'application Android ne démarre pas sur l'appareil

le fichier AndroidManifest.xml est:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="lsp.workshop" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk android:minSdkVersion="7" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 

    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" > 
     <activity 
      android:name=".TwitterLogin" 
      android:label="@string/app_name" android:launchMode="singleTask"> 
      <intent-filter> 
       <action android:name="android.intent.action.VIEW" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
       <category android:name="android.intent.category.BROWSABLE" /> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
       <data android:scheme="twitter" /> 

       <data android:host="log" /> 
      </intent-filter> 
     </activity> 

    </application> 
</manifest> 

Qu'est-ce que je fais mal? Merci

+1

Peut-être qu'il me manque quelque chose. Pourquoi n'est-il pas nommé something.apk? –

+0

lsp.workshop est le paquet (répertoires sous le dossier src) contenant mes fichiers source, pas le nom du fichier apk qui est en effet quelque chose.apk – Killawatt

+0

Oh. Comme il est dit "Activité introuvable", êtes-vous sûr d'avoir .TwitterLogin? –

Répondre

1

En utilisant deux filtres d'intention au lieu d'un a résolu le problème:

<intent-filter> 
    <action android:name="android.intent.action.MAIN" /> 
    <category android:name="android.intent.category.LAUNCHER" /> 
</intent-filter> 
<intent-filter> 
    <action android:name="android.intent.action.VIEW" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <category android:name="android.intent.category.BROWSABLE" /> 
    <data android:scheme="twitter" android:host="log" /> 
</intent-filter> 
1

L'émulateur et android avec un débogueur attaché peuvent se comporter différemment alors lorsque vous démarrez une application normalement. Le timing est différent (influence le multithreading et les conditions de course) et d'autres choses peuvent également être affectées.

Mais juste pour être sûr:

Avez-vous la liste de l'activité au sein de votre fichier AndroidManifest.xml?

L'orthographe est-elle vraiment correcte?

Si ces choses ne sont pas le problème, alors pourriez-vous montrer du code (comment démarrer l'activité? Avec une intention?) Et peut-être le fichier manifeste?

+0

J'ai modifié mon message original avec le fichier AndroidManifest.xml – Killawatt

0

Lorsque vous exportez votre apk, assurez-vous de le nommer -something.apk, à savoir il suffit de mettre le « .apk » à la fin quand vous exportez l'application (y)