Errata - Android2eeAndroid2ee formation expert android
× A propos des Ebooks

Errata

More
12 years 11 months ago - 12 years 9 months ago #6 by mseguy
Errata was created by mseguy
Bonjour,
:oops:
Certaines erreurs sont dores et déjà remontées:
  1. GUI est l'acronyme de Graphical User Interface
  2. Sous le schéma présentant les états d'une activités, la légende oubliée est : developer.android.com/guide/topics/fundamentals/activities.html, mais vous l'aurez reconnu
  3. Page 29,
    public void onTextChanged(CharSequence s, int start, int before, int count) {
    autoCompleteTextView.setText(textView.getText());
    }


    est à modifier par:
    public void onTextChanged(CharSequence s, int start, int before, int count) {
    textView.setText(autoCompleteTextView.getText());
    }


    (merci à renaudm)
  4. Page 68,

    Dans l'activité OtherActivty, il manque la façon de renvoyer des resultats à l'activité appelante.
    Pour ce faire il vous suffit de rajouter une méthode setResultsForCaller. Il vous suffit quand vous souhaitez sauver ces valeurs de l'appeler (n'importe quand dans votre activité) :
    protected void setResultsForCaller () {
    	//je déclare un intent pour ajouter des données
        Intent result = new Intent();
    	//j'utilise un bundle pour mettre ces données
        Bundle b = new Bundle();
    	//je rejaoute les données que je veux transmettre à l'activité appelante
        b.putParcelableArray("com.whatever.data", items);
    	//je les stocke dans l'intent
        result.putExtras(b);
    	//et je demande de s'en souvenir comme un résultat de mon activité
        setResult(Activity.RESULT_OK, result);
    }


  5. Page 90,

    Dans la définition de la ListPreference du fichier XML, preference.xml, il est écrit :
    <ListPreference 
          android:key="@string/list" 
          android:title="Choice dialog" 
          android:summary="Click to open a list of choices"
    android:entries="@array/i_like_array"
    android:dialogTitle="Choose what you like" />



    en fait il faut écrire:
    <ListPreference 
          android:key="@string/list" 
          android:title="Choice dialog" 
          android:summary="Click to open a list of choices"
    android:entries="@array/i_like_array"

    android:entryValues="@array/i_like_array"
    android:dialogTitle="Choose what you like" />


    ou bien, il faut écrire:
    <ListPreference 
          android:key="@string/list" 
          android:title="Choice dialog" 
          android:summary="Click to open a list of choices" 
    android:entries="@array/i_like_array"

    android:entryValues="@array/i_like_array_values"
          android:dialogTitle="Choose what you like" />


    Dans le premier cas, les entries (liste des chaînes de caractères affichées à l'utilisateur) et les entryValues (liste des objets renvoyés lors de la sélection) sont identiques, dans le second cas, ce sont deux tableaux différents.

    L'utilité d'avoir un entryValues est de pouvoir renvoyer un entier, une chaîne de caractères ou autre. La plupart du temps entries et entryValues peuvent être identiques.


    La deuxième erreur de ce paragraphe vient du fait que l'on déclare i_like_array dans le fichier string.xml, ce qui ne marche pas. Il faut déclarer ces tableaux (i_like_array et i_like_array_values) dans le fichier res\values\arrays.xml (à côté du fichier string.xml quoi).

    Ce qui donne:

    le fichier string.xml:
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <string name="hello">Hello World, PreferenceSimpleTuto!</string>
        <string name="app_name">PreferenceSimpleTuto</string>
        <string name="checkbox">Check Box</string>
        <string name="ringtone">Ring Tone</string>
        <string name="checkbox2">Check Box2</string>
        <string name="text">Text</string>
        <string name="list">List</string>
    </resources>


    le fichier arrays.xml:
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    	<string-array name="i_like_array">
    		<item>chocolate</item>
    		<item>television</item>
    		<item>internet</item>
    		<item>nicotine</item>
    		<item>hug</item>
    		<item>Santa Claus</item>
    	</string-array>
    	<string-array name="i_like_array_values">
    		<item>chocolate</item>
    		<item>television</item>
    		<item>internet</item>
    		<item>nicotine</item>
    		<item>hug</item>
    		<item>SantaClaus</item>
    	</string-array>
    </resources>


  6. Page 220,

    Il est écrit

    "Dans le cas de votre clef de production, il faut taper:
    $ keytool -list -alias alias_name -keystore my-release-key.keystore
    "


    En fait il devrait être écrit:
    "Dans le cas de votre clef de production, il faut taper:
    $ keytool -list -alias alias_name -keystore my-release-key.keystore -storepass my-keystore-password -keypass my-key-password
    "
  7. Page 227, 275:

    Il est écrit :

    <groupId>android</groupId>

    <artifactId>android</artifactId>


    et le premier groupId est faux, il doit être écrit:


    <groupId>com.google.android</groupId>

    <artifactId>android</artifactId>


    Le tutorial MavenAndroidTuto va être mis à jour en conséquence (il faut que je le livre).

Mathias Séguy
This email address is being protected from spambots. You need JavaScript enabled to view it.
Auteur Android2ee.com
Docteur en Mathématiques Fondamentales
Directeur Technique & Avant-vente
Expert Technique de l'Agence Nationale de la Recherche
Rédacteur sur Developpez.com
Last edit: 12 years 9 months ago by mseguy.

Please Log in or Create an account to join the conversation.

More
12 years 9 months ago - 12 years 8 months ago #18 by mseguy
Replied by mseguy on topic Re: Errata
:blush:
Chapitre 15.2.1.1: En utilisant le projet générique Android téléchargeable.
p250-251
Bon, comme les errata s'agrandissent, je vais faire un post par sujet (à partir de maintenant).
Concernant le POM Android Utlime, j'ai repris le jar et surprise ça ne marchait plus (qu'est ce que j'ai raté? le zip, le projet initial? je ne sais pas).
Quoi qu'il en soit c'est corrigé, vous pouvez le télécharger de nouveau.
Durant cette correction, je me suis aperçu que quelques lignes manquées dans ce qu'il fallait faire pour mettre à jour le projet (en gras ce qu'il manque):
  • -Importer le projet au sein d’Eclipse (le projet parent) en utilisant « import an existing maven project ».


  • -Faire un « search and replace » de :


  • o « com.android2ee.android.tuto.maven » par le GroupId de votre projet


  • o « AndroidGenericProject » par l’artifactId de votre projet


  • -Renommer les noms de package en conséquence dans les projet **-ap et **-it (qui sont restés du type com.android2ee.android.tuto.maven)


  • -Supprimer puis réimporter le projet au sein du workspace Eclipse (le projet parent) en utilisant « import an existing maven project ».


  • -Faire un clic droit sur le projet **-ap et dans le menu choisir Maven->UpdateProjectConfiguration


  • -Faire un clic droit sur le projet **-it et dans le menu choisir Maven->UpdateProjectConfiguration


  • -Copier le contenu du fichier setting.xml (à la racine du projet parent) dans votre fichier setting.xml (faire un merge si vous avez déjà un fichier setting conséquent). Dans ce fichier setting.xml, il vous faut rajouter les AVDs que vous utilisez. Pour cela, dans les blocs du type suivant:

    <profile>
    			<id>AVD-Google3</id>
    			<properties>
    				<!--The path to the Android SDK-->
    				<avd-name>Google3</avd-name>
    			</properties>
    		</profile>
    il faut remplacer l'id par l'id de votre AVD et avd-name par le nom réél de votre AVD (visible dans l'AVD manager d'eclipse). Ensuite, il faut aussi en haut du fichier setting que vous définnissiez quels AVD vous souhaitez activer par défaut, dans le bloc
    <activeProfiles>
    		<activeProfile>android-project</activeProfile>
    		<activeProfile>[i]AVD-Google10[/i]</activeProfile>
    	</activeProfiles>
    et à la place de AVD-Google10 mettre l'identifiant de votre AVD préféré.


  • -Modifier les valeurs de versions dans le Pom du projet parent (si besoin) et mettre à jour les valeurs des chemins dans le fichier setting.xml.


  • -Modifier dans votre manifeste la version minimale du SDK que vous souhaitez utiliser : <uses-sdk android:minSdkVersion="3" />


  • -Modifier dans les deux fichiers default.properties la version de votre projectTarget. Il faut mettre lma valeur de votre minSdkVersion (ci-dessus modifié):

    # Project target.

    target=android-7

    et mettre le même numéro de level à la place du 7.


  • -Effectuer un clean (RunAs->maven Clean)


  • -Votre projet est opérationnel, mavenisé et prêt pour l’intégration continue.






  • /!\ Attention/!\
    Lors de l'import du projet dans Eclipse, le classPath du projet est modifié, vérifiez que votre classPath est celui-ci:
    <?xml version="1.0" encoding="UTF-8"?>
    <classpath>
    <classpathentry kind="src" output="target/classes" path="src/main/java"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
    <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
    <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
    <classpathentry kind="output" path="target/classes"/>
    </classpath>

    si ce n'est pas le cas, modifier le à la main


    Vous trouverez ci-joint un document PDF qui allonge la liste des problèmes que vous pouvez rencontrer, leur cause ainsi que les solutions associées.
    Android Maven Ulitme POM.pdf

    Mathias Séguy
    This email address is being protected from spambots. You need JavaScript enabled to view it.
    Auteur Android2ee.com
    Docteur en Mathématiques Fondamentales
    Directeur Technique & Avant-vente
    Expert Technique de l'Agence Nationale de la Recherche
    Rédacteur sur Developpez.com
    Last edit: 12 years 8 months ago by mseguy.

    Please Log in or Create an account to join the conversation.

    Save
    Cookies user preferences
    We use cookies to ensure you to get the best experience on our website. If you decline the use of cookies, this website may not function as expected.
    Accept all
    Decline all
    Essential
    These cookies are needed to make the website work correctly. You can not disable them.
    Affichage
    Accept
    Analytics
    Tools used to analyze the data to measure the effectiveness of a website and to understand how it works.
    Google Analytics
    Accept
    Decline