2011-12-27 4 views
0

J'ai un projet android que je veux "cloner" pour un second projet similaire qui ne diffère que par un fichier: c'est la base de données sqlite (assets/mydata.sql).Implémentation d'un projet de bibliothèque Android

Je suis devenu le projet source (reslib) dans une bibliothèque et l'a ajouté aux propriétés de mon projet clone (le projet source apparaît sous la rubrique « Projets de bibliothèque » comme reslib.jar)

chose est, je Je ne sais pas comment lancer l'activité principale dans le projet source. L'activité principale du projet source configure un TabHost. Comment puis-je me lancer dans l'activité principale du projet source à partir de mon projet clone? J'ai commencé à coller du code dans "cloneActivity.java" pour lancer TabHost mais je me suis demandé s'il y avait un meilleur moyen.

+0

Une raison spécifique pour laquelle vous avez opté pour la bibliothèque? Ces deux projets sont-ils interdépendants? Si non, pourquoi ne pas renommer avec le projet et modifier les fichiers requis? Lorsque vous téléchargez cela sur le marché, de toute façon ce sera un nouveau APK à droite? – kosa

+0

J'essaie de partager du code entre les projets. Faire une bibliothèque commune partagée (projet) était la seule façon de trouver une base de code partagée entre deux projets. – wufoo

+0

Ensuite, je suis désolé, je n'ai pas de réponse. Dans mon cas, j'ai maintenu deux bases de code source. En passant, ce qui m'a permis d'ajouter des fonctionnalités supplémentaires à l'une des applications qui ne sont pas nécessaires pour les autres. Je suggère fortement même pour vous aussi. Qui sait, à l'avenir, vous pouvez faire face à la même situation. – kosa

Répondre

1

Cela est assez simple. Dans le manifeste de votre projet dépendant, vous devez spécifier l'activité du projet source comme celle que vous voulez lancer.

Supposons que votre projet source a le nom de package com.example.source, votre projet en fonction a le nom de package com.example.dependent, et l'activité principale de votre projet source est MainActivity.java.

Puis, en AndroidManifest.xml dans votre projet dépendant, vous auriez quelque chose comme ce qui suit:

<application 
    android:icon="@drawable/logo" > 
    <activity 
    android:name="com.example.source.MainActivity" > 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
    </activity> 

    <!-- possibly lots more activities and other declarations --> 

</application> 

Remarques importantes: Dans les deux manifestes pour votre projet source et le projet dépendant, vous devez faire Assurez-vous de répertorier toutes les activités, autorisations, etc. Si vous ajoutez ultérieurement une activité à votre projet source, n'oubliez pas de l'ajouter au manifeste du projet dépendant.

De même, vous devrez copier n'importe quoi dans le répertoire assets du projet source vers le projet dépendant — et n'oubliez pas de le synchroniser également. (Cela est vrai à partir de Juin 2012, j'ai entendu dire que une version future des outils de construction Android sera probablement d'atténuer ce mal de tête.)

Et enfin, si vous utilisez Eclipse pour créer des projets, il va créer une disposition par défaut main.xml. Comme les ressources du projet dépendant remplacent les ressources du projet source, assurez-vous que cela ne vous dérange pas.

+0

Merci! J'ai fini par créer une activité dans le projet dépendant qui a lancé l'activité de démarrage dans le projet de bibliothèque. Pas le meilleur mais tout ce que je pouvais comprendre à l'époque. J'aime beaucoup mieux cette façon! – wufoo

Questions connexes