IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Inclure ksoap2-android-assembly-3.0.0-jar-with-dependencies.jar et android-support-v4.jar dans APK


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 716
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 716
    Par défaut Inclure ksoap2-android-assembly-3.0.0-jar-with-dependencies.jar et android-support-v4.jar dans APK
    Bonjour,

    J'ai cree un jar signé depuis Maven, mais il est beaucoup plus petit en taille que celui d'eclipse.
    A priori les deux jar ksoap2-android-assembly-3.0.0-jar-with-dependencies.jar et android-support-v4.jar ne sont pas inclus dans l'APK final.
    Comment les inclure
    Merci d'avance
    Phil

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Novembre 2014
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Novembre 2014
    Messages : 67
    Par défaut
    Salut,

    A priori ?

    Tu les as bien ajouté à ton dossier libs et au java build path ?

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 716
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 716
    Par défaut
    Bonjour

    Dans le pom.xml j'ai ajoute le répertoire "libs", mais je pense sans effet, mon soucis est certainement la <Class-Path>${project.basedir}/libs/</Class-Path> .
    Ce repertoire libs contient deux dependencies également ajouté dans le pom ksoap2-android-assembly-3.0.0-jar-with-dependencies.jar et android-support-v4.jar

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
     
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
    http://maven.apache.org/maven-v4_0_0.xsd">
    	<modelVersion>4.0.0</modelVersion>
    	<groupId>fr.toto</groupId>
    	<artifactId>conges</artifactId>
    	<version>1.1.0-SNAPSHOT</version>
    	<packaging>apk</packaging>
    	<name>Toto Planif</name>
    	<build>
    <!-- 		<sourceDirectory>src</sourceDirectory> -->
    		<pluginManagement>
    			<plugins>
    				<plugin>
    					<groupId>org.eclipse.m2e</groupId>
    					<artifactId>lifecycle-mapping</artifactId>
    					<version>1.0.0</version>
    					<configuration>
    						<lifecycleMappingMetadata>
    							<pluginExecutions>
    								<pluginExecution>
    									<pluginExecutionFilter>
    										<groupId>com.jayway.maven.plugins.android.generation2</groupId>
    										<artifactId>android-maven-plugin</artifactId>
    										<versionRange>[3.8.0,)</versionRange>
    										<goals>
    											<goal>consume-aar</goal>
    										</goals>
    									</pluginExecutionFilter>
    									<action>
    										<ignore />
    									</action>
    								</pluginExecution>
    							</pluginExecutions>
    						</lifecycleMappingMetadata>
    					</configuration>
    				</plugin>
    			</plugins>
    		</pluginManagement>
    		<plugins>
    			<plugin>
    				<groupId>com.jayway.maven.plugins.android.generation2</groupId>
    				<artifactId>android-maven-plugin</artifactId>
    				<version>3.8.2</version>
    				<configuration>
    					<androidManifestFile>${project.basedir}/AndroidManifest.xml</androidManifestFile>
    					<assetsDirectory>${project.basedir}/assets</assetsDirectory>
    					<resourceDirectory>${project.basedir}/res</resourceDirectory>
     
     
    				<!--	<sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
    					<nativeLibrariesDirectory>${project.basedir}/src/main/native</nativeLibrariesDirectory> -->
     
    					<sdk>
    						<!-- mvn -X clean install -Dandroid.sdk.path="C:\java\android-sdk-windows" -->
    						<!-- dir <ParrentDirectory> /X -->
    						<!-- <android.sdk.path>C:\java\ANDROI~1</android.sdk.path> -->
    						<platform>19</platform>
    					</sdk>
    					<deleteConflictingFiles>true</deleteConflictingFiles>
    					<undeployBeforeDeploy>true</undeployBeforeDeploy>
    				<!--	<proguard>
    						<skip>false</skip>
    						<config>${project.basedir}/proguard-project.txt</config>
    					</proguard> -->
    				</configuration>
     
    				<extensions>true</extensions>
    				<executions>
    					<execution>
    						<id>alignApk</id>
    						<phase>install</phase>
    						<goals>
    							<goal>zipalign</goal>
    						</goals>
    					</execution>
    				</executions>
    			</plugin>
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
      				<artifactId>maven-compiler-plugin</artifactId>
    				<version>2.3.2</version>
    				<!-- soucis DigesterException -->
    				<!--<version>3.0</version> -->
    				<configuration>
    								<inherited>true</inherited>
    				<!--	<encoding>UTF-8</encoding> celui du projet -->
                          <source>1.6</source>
                          <target>1.6</target>
    				</configuration>
    			</plugin>
     
    			<!---
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-jarsigner-plugin</artifactId>
    				<version>1.2</version>
    				<executions>
    					<execution>
    						<id>sign</id>
    						<goals>
    							<goal>sign</goal>
    						</goals>
    					</execution>
    				</executions>
     
    				<configuration>
    					<keystore>c:\zpoubelle\keystoreb.jks</keystore>
    					<alias>toto</alias>
    					<storepass>toto</storepass>
    					<keypass>toto</keypass>
    					<verbose>true</verbose>
    				</configuration>
     
    			</plugin>
    			-->
    			<!-- le repertoire META-INF ne doit pas exister -->
    			<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jarsigner-plugin</artifactId>
    	<version>1.3.2</version>
        <executions>
          <execution>
            <id>signing</id>
            <goals>
              <goal>sign</goal>
            </goals>
            <phase>package</phase>
            <inherited>true</inherited>
            <configuration>
    		  <removeExistingSignatures>true</removeExistingSignatures>
          <!--    <archive>target/${project.build.finalName}.apk</archive> -->
    	        <!-- <archive>c:\zpoubelle\t24.apk</archive> -->
    	        <archive></archive>
             <!-- <sigfile>CERT</sigfile> -->
    		  		<!-- <keystore>${project.basedir}/keystoreb.jks</keystore> -->
              <keystore>c:\zpoubelle\keystoreb.jks</keystore>
              <storepass>toto</storepass>
              <keypass>toto</keypass>
              <alias>toto</alias>
    		   <verbose>true</verbose>
    		   <verify>true</verify>
    		  <arguments>
       <argument>-sigalg</argument><argument>MD5withRSA</argument>
       <!--  <argument>-sigalg</argument><argument>SHA1withRSA</argument> -->
      <argument>-digestalg</argument><argument>SHA1</argument>
    </arguments>
            </configuration>
          </execution>
        </executions>
      </plugin>
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-surefire-plugin</artifactId>
    				<version>2.15</version>
    			</plugin>
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-jar-plugin</artifactId>
    				<version>2.4</version>
    				<configuration> 
                <archive> 
                    <manifest> 
                        <addClasspath>true</addClasspath> 
                     </manifest> 
            <manifestEntries> 
                <Class-Path>${project.basedir}/libs/</Class-Path> 
            </manifestEntries>  
                </archive> 
            </configuration> 
    			</plugin>
    		</plugins>
    	</build>
     
    	<dependencies>
    		<dependency>
    			<groupId>android</groupId>
    			<artifactId>android</artifactId>
    			<version>4.4.2_r3</version>
    			<scope>provided</scope>
    		</dependency>
    		<dependency>
    			<groupId>com.google.code.ksoap2-android</groupId>
    			<artifactId>ksoap2-android-assembly</artifactId>
    			<version>3.0.0</version>
    			<scope>provided</scope>
    		</dependency>
    		<dependency>
    	<groupId>com.google.android</groupId>
    	<artifactId>support-v4</artifactId>
    	<version>r7</version>
    </dependency>
    	</dependencies>
    </project>
    Lorsque je cree mon APK depuis eclipse, il fait 554ko et depuis maven 363ko, mais tout compile, par contre la version depuis eclipse fonctionne alors que celle cree par maven crash.
    le classes.dex a l'interieur de l'apk est beaucoup plus petit dans la version maven, mais pourtant il compile ?
    Il compile et commence meme l'execution, la premiere Activity s'execute et c'est lors du passage à la deuxieme que l'appli crash.

    Merci d'avance
    Phil

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 716
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 716
    Par défaut
    Bonsoir

    Dans la version compilé depuis Maven 3.2.3 lorsque je fais adb logcat, j'ai les logs suivant
    W/ResourceType(  837): No package identifier when getting name for resource number 0x0000000e
    W/View    (  837): requestLayout() improperly called by com.android.launcher2.PagedViewIcon{42ba6840 VFED..CL ......ID 0,416-192,608 #e} during layout: running
    second layout pass
    
    le fichier R.txt ne contient que des references commencant par 0x7fxxxxxxxx
    L'APL génére par Maven est toujours plus petit que celui cree par eclipse 363K au lieu de 554K, mais il se lance quand meme.


    adb logcat m'indique que mon apk construit avec maven ne contient pas les classes de org.ksoap 2
    E/AndroidRuntime(14207): java.lang.NoClassDefFoundError: org.ksoap2.serialization.SoapObject
    
    E/AndroidRuntime(14207): 	at fr.alithya.conges.soap.CallSoap.Call(CallSoap.java:42)
    
    E/AndroidRuntime(14207): 	at fr.alithya.conges.soap.Caller.run(Caller.java:16)
    
    Le POM
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
     
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
    http://maven.apache.org/maven-v4_0_0.xsd">
    	<modelVersion>4.0.0</modelVersion>
    	<groupId>fr.toto</groupId>
    	<artifactId>conges</artifactId>
    	<version>1.1.0-SNAPSHOT</version>
    	<packaging>apk</packaging>
    	<name>toto Planif</name>
    	<build>
    		<pluginManagement>
    			<plugins>
    				<plugin>
    					<groupId>org.eclipse.m2e</groupId>
    					<artifactId>lifecycle-mapping</artifactId>
    					<version>1.0.0</version>
    					<configuration>
    						<lifecycleMappingMetadata>
    							<pluginExecutions>
    								<pluginExecution>
    									<pluginExecutionFilter>
    										<groupId>com.jayway.maven.plugins.android.generation2</groupId>
    										<artifactId>android-maven-plugin</artifactId>
    										<versionRange>[3.8.0,)</versionRange>
    										<goals>
    											<goal>consume-aar</goal>
    										</goals>
    									</pluginExecutionFilter>
    									<action>
    										<ignore />
    									</action>
    								</pluginExecution>
    							</pluginExecutions>
    						</lifecycleMappingMetadata>
    					</configuration>
    				</plugin>
    			</plugins>
    		</pluginManagement>
    		<plugins>
    			<plugin>
    				<groupId>com.jayway.maven.plugins.android.generation2</groupId>
    				<artifactId>android-maven-plugin</artifactId>
    				<version>3.8.2</version>
    				<configuration>
            <sign>
                <debug>false</debug>
            </sign>
    					<androidManifestFile>${project.basedir}/AndroidManifest.xml</androidManifestFile>
    					<assetsDirectory>${project.basedir}/assets</assetsDirectory>
    					<resourceDirectory>${project.basedir}/res</resourceDirectory>
    					<sdk>
    						<platform>19</platform>
    					</sdk>
    					<deleteConflictingFiles>true</deleteConflictingFiles>
    					<undeployBeforeDeploy>true</undeployBeforeDeploy>
    				<!--	<proguard>
    						<skip>false</skip>
    						<config>${project.basedir}/proguard-project.txt</config>
    					</proguard> -->
    				</configuration>
     
    				<extensions>true</extensions>
    				<executions>
    					<execution>
    						<id>alignApk</id>
    						<phase>install</phase>
    						<goals>
    							<goal>zipalign</goal>
    						</goals>
    					</execution>
    				</executions>
    			</plugin>
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
      				<artifactId>maven-compiler-plugin</artifactId>
    				<version>2.3.2</version>
    				<configuration>
    						<inherited>true</inherited>
    	                      <source>1.6</source>
                          <target>1.6</target>
    				</configuration>
    			</plugin>
     
    			<!-- le repertoire META-INF ne doit pas exister -->
    			<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jarsigner-plugin</artifactId>
    	<version>1.3.2</version>
        <executions>
          <execution>
            <id>signing</id>
            <goals>
              <goal>sign</goal>
            </goals>
            <phase>package</phase>
            <inherited>true</inherited>
            <configuration>
    		  <removeExistingSignatures>true</removeExistingSignatures>
                    <archiveDirectory />
                    <includes>
                        <include>${project.build.directory}/${project.artifactId}.apk</include>
                    </includes>
    		  <keystore>${project.basedir}/keystoreb.jks</keystore>
              <storepass>toto</storepass>
              <keypass>toto</keypass>
              <alias>toto</alias>
    		   <verbose>true</verbose>
    		   <verify>true</verify>
    		  <arguments>
       <argument>-sigalg</argument><argument>MD5withRSA</argument>
      <argument>-digestalg</argument><argument>SHA1</argument>
    </arguments>
            </configuration>
          </execution>
        </executions>
      </plugin>
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-surefire-plugin</artifactId>
    				<version>2.15</version>
    			</plugin>
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-jar-plugin</artifactId>
    				<version>2.5</version>
    				<configuration> 
                <archive> 
                    <manifest> 
                        <addClasspath>true</addClasspath> 
                     </manifest> 
            <manifestEntries> 
                <Class-Path>${project.basedir}/libs/</Class-Path> 
            </manifestEntries>  
                </archive> 
    			<configuration>
              <includes>
                <include>${project.basedir}/libs/*</include>
              </includes>
            </configuration>
            </configuration> 
    			</plugin>
    		</plugins>
    	</build>
     
    	<dependencies>
    		<dependency>
    			<groupId>android</groupId>
    			<artifactId>android</artifactId>
    			<version>4.4.2_r3</version>
    			<scope>provided</scope>
    		</dependency>
    		<dependency>
    			<groupId>com.google.code.ksoap2-android</groupId>
    			<artifactId>ksoap2-android-assembly</artifactId>
    			<version>3.0.0</version>
    			<scope>provided</scope>
    		</dependency>
    		<dependency>
    	<groupId>com.google.android</groupId>
    	<artifactId>support-v4</artifactId>
    	<version>r7</version>
    </dependency>
    	</dependencies>
    </project>
    La version compilé depuis eclipse incorporait la librairie et pas celle compilé avec maven depuis ligne de commande ?
    Phil

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 716
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 716
    Par défaut
    enlever le provided a ksoap2-android-assembly dans le pom !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 19/01/2015, 20h10
  2. Réponses: 0
    Dernier message: 04/12/2012, 01h12
  3. créer un jar d'une appli java utilisant d'autres jar
    Par jakouz dans le forum Général Java
    Réponses: 2
    Dernier message: 14/02/2007, 17h20
  4. [Maven 2]mes jar en dependencies
    Par DanielW33 dans le forum Maven
    Réponses: 2
    Dernier message: 28/07/2006, 09h46
  5. [JAR] Comment déployer son application en incluant un jar ?
    Par david06600 dans le forum Général Java
    Réponses: 6
    Dernier message: 20/02/2006, 10h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo