android - maven: apk packed wrong -
i tried compile project maven. here's project structure:
root |---- app |---- test
test - robotium test project.
here's root pom.xml:
<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>com.tecomgroup</groupid> <artifactid>agregator</artifactid> <version>6.8.0.1</version> <packaging>pom</packaging> <name>handifox agregator</name> <profiles> <profile> <id>release</id> <activation> <property> <name>performrelease</name> <value>true</value> </property> </activation> </profile> <profile> <id>sign</id> <build> <plugins> <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-jarsigner-plugin</artifactid> <version>1.2</version> <executions> <execution> <id>signing</id> <goals> <goal>sign</goal> </goals> <phase>package</phase> <inherited>true</inherited> <configuration> <archivedirectory></archivedirectory> <includes> <include>**/*.apk</include> </includes> <keystore>c:/forandroid/keystore</keystore> <storepass>2id83kd0e</storepass> <keypass>8dfjvodw3</keypass> <alias>handifoxkeystore</alias> <arguments> <argument>-sigalg</argument><argument>md5withrsa</argument> <argument>-digestalg</argument><argument>sha1</argument> </arguments> </configuration> </execution> </executions> </plugin> <plugin> <groupid>com.jayway.maven.plugins.android.generation2</groupid> <artifactid>android-maven-plugin</artifactid> <inherited>true</inherited> <configuration> <sign> <debug>false</debug> </sign> </configuration> </plugin> </plugins> </build> </profile> </profiles> <modules> <module>app</module> <module>test</module> </modules> <url>http://code.google.com/p/maven-android-plugin</url> <properties> <app_folder>${basedir}</app_folder> </properties> <build> <pluginmanagement> <plugins> <plugin> <groupid>com.jayway.maven.plugins.android.generation2</groupid> <artifactid>android-maven-plugin</artifactid> <version>3.6.1</version> <configuration> <manifest> <versionname>${project.version.name}</versionname> <versioncode>${project.version.code}</versioncode> <debuggable>${project.debug.mode}</debuggable> </manifest> <undeploybeforedeploy>true</undeploybeforedeploy> <zipalign> <skip>false</skip> <verbose>${project.verbosity}</verbose> <outputapk>${project.build.directory}/${project.build.finalname}-signed-aligned.apk</outputapk> </zipalign> </configuration> <executions> <execution> <id>zipalign</id> <phase>package</phase> <goals> <goal>zipalign</goal> </goals> </execution> <execution> <id>update-manifest</id> <goals> <goal>manifest-update</goal> </goals> </execution> </executions> </plugin> </plugins> </pluginmanagement> <plugins> <plugin> <artifactid>maven-release-plugin</artifactid> <version>2.4.1</version> <configuration> <!-- during release:perform, enable "release" profile --> <releaseprofiles>release</releaseprofiles> <goals>deploy assembly:single</goals> </configuration> </plugin> <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-jar-plugin</artifactid> <configuration> <archive> <manifestentries> <build-source-version>1.6</build-source-version> <build-target-version>1.6</build-target-version> </manifestentries> </archive> </configuration> </plugin> <plugin> <artifactid>maven-enforcer-plugin</artifactid> <executions> <execution> <id>enforce-maven</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <requiremavenversion> <version>[${maven.version},)</version> <message>check maven version >=${maven.version} failed. update maven install.</message> </requiremavenversion> </rules> </configuration> </execution> </executions> </plugin> </plugins> </build> </project>
app pom file:
<?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> <parent> <groupid>com.tecomgroup</groupid> <artifactid>agregator</artifactid> <version>6.8.0.1</version> </parent> <groupid>com.tecomgroup</groupid> <artifactid>handifox</artifactid> <version>6.8.0.1</version> <packaging>apk</packaging> <name>handifox</name> <properties> <app_folder>${basedir}</app_folder> <project.version.name.number>${version}</project.version.name.number> <project.version.code>1</project.version.code> <project.build.sourceencoding>utf-8</project.build.sourceencoding> <project.version.name>${project.version.name.number}</project.version.name> <project.verbosity>true</project.verbosity> </properties> <dependencies> <dependency> <groupid>com.google.android</groupid> <artifactid>android</artifactid> <version>2.3.3</version> <scope>provided</scope> </dependency> <dependency> <groupid>com.ianywhere</groupid> <artifactid>ultralitejni12</artifactid> <version>1.6</version> <scope>provided</scope> </dependency> <dependency> <groupid>com.google.android</groupid> <artifactid>annotations</artifactid> <version>4.1.1.4</version> </dependency> </dependencies> <build> <finalname>handifox</finalname> <sourcedirectory>src</sourcedirectory> <resources> <resource> <directory>${project.basedir}/assets</directory> <filtering>true</filtering> <includes> <include>**/*.properties</include> </includes> </resource> </resources> <pluginmanagement> <plugins> <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-compiler-plugin</artifactid> <version>3.1</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-javadoc-plugin</artifactid> <configuration> <encoding>cp1252</encoding> </configuration> </plugin> <plugin> <groupid>com.jayway.maven.plugins.android.generation2</groupid> <artifactid>android-maven-plugin</artifactid> <version>3.6.1</version> <configuration> <sdk> <platform>15</platform> </sdk> <androidmanifestfile>${app_folder}/androidmanifest.xml</androidmanifestfile> <sign> <debug>false</debug> </sign> </configuration> <extensions>true</extensions> </plugin> <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-install-plugin</artifactid> <version>2.3.1</version> <executions> <execution> <id>install-library</id> <phase>validate</phase> <goals> <goal>install-file</goal> </goals> <configuration> <file>${app_folder}/libs/ultralitejni12.jar</file> <groupid>com.ianywhere</groupid> <artifactid>ultralitejni12</artifactid> <version>1.6</version> <packaging>jar</packaging> <generatepom>true</generatepom> </configuration> </execution> </executions> </plugin> <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-jarsigner-plugin</artifactid> <version>1.2</version> <executions> <execution> <id>signing</id> <goals> <goal>sign</goal> </goals> <inherited>true</inherited> <configuration> <includes> <include>${app_folder}/*.apk</include> </includes> <keystore>c:/forandroid/keystore</keystore> <storepass>2id83kd0e</storepass> <keypass>8dfjvodw3</keypass> <alias>handifoxkeystore</alias> <removeexistingsignatures>false</removeexistingsignatures> <verbose>true</verbose> <arguments> <argument>-sigalg</argument><argument>md5withrsa</argument> <argument>-digestalg</argument><argument>sha1</argument> </arguments> </configuration> </execution> </executions> </plugin> </plugins> </pluginmanagement> <plugins> <plugin> <groupid>com.jayway.maven.plugins.android.generation2</groupid> <artifactid>android-maven-plugin</artifactid> <version>3.6.1</version> <configuration> <sdk> <platform>17</platform> </sdk> </configuration> </plugin> </plugins> </build> </project>
and test pom file:
<?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> <parent> <groupid>com.tecomgroup</groupid> <artifactid>agregator</artifactid> <version>6.8.0.1</version> </parent> <groupid>com.tecomgroup</groupid> <artifactid>handifoxtest</artifactid> <version>6.8.0.1</version> <packaging>apk</packaging> <name>handifoxtest</name> <properties> <app_folder>${basedir}</app_folder> </properties> <dependencies> ............. <!-- andoroid-test --> <dependency> <groupid>com.google.android</groupid> <artifactid>android-test</artifactid> <version>2.2.1</version> <scope>provided</scope> </dependency> <dependency> <groupid>com.tecomgroup</groupid> <artifactid>handifox</artifactid> <version>6.8.0.1</version> <scope>provided</scope> <type>apk</type> </dependency> <dependency> <groupid>com.tecomgroup</groupid> <artifactid>handifox</artifactid> <version>6.8.0.1</version> <scope>provided</scope> <type>jar</type> </dependency> </dependencies> <build> <finalname>handifox-test</finalname> <sourcedirectory>src</sourcedirectory> <resources> <resource> <directory>${project.basedir}/assets</directory> <filtering>true</filtering> <includes> <include>**/*.properties</include> </includes> </resource> </resources> <pluginmanagement> <plugins> <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-compiler-plugin</artifactid> <version>3.1</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> <plugin> <groupid>com.jayway.maven.plugins.android.generation2</groupid> <artifactid>android-maven-plugin</artifactid> <version>3.6.1</version> <configuration> <sdk> <platform>15</platform> </sdk> <androidmanifestfile>${app_folder}/androidmanifest.xml</androidmanifestfile> <sign> <debug>false</debug> </sign> </configuration> <extensions>true</extensions> </plugin> <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-jarsigner-plugin</artifactid> <version>1.2</version> <executions> <execution> <id>signing</id> <goals> <goal>sign</goal> </goals> <inherited>true</inherited> <configuration> <includes> <include>${app_folder}/*.apk</include> </includes> <keystore>c:/forandroid/keystore</keystore> <storepass>2id83kd0e</storepass> <keypass>8dfjvodw3</keypass> <alias>handifoxkeystore</alias> <removeexistingsignatures>false</removeexistingsignatures> <verbose>true</verbose> <arguments> <argument>-sigalg</argument><argument>md5withrsa</argument> <argument>-digestalg</argument><argument>sha1</argument> </arguments> </configuration> </execution> </executions> </plugin> </plugins> </pluginmanagement> <plugins> <plugin> <groupid>com.jayway.maven.plugins.android.generation2</groupid> <artifactid>android-maven-plugin</artifactid> <version>3.6.1</version> <configuration> <sdk> <platform>17</platform> </sdk> </configuration> </plugin> </plugins> </build> </project>
i pack such command:
mvn package -dperformrelease=true -psign
it packs apk files without errors. when install , run on device, there error:
08-28 11:49:02.972: w/dalvikvm(18177): vfy: unable resolve exception class 186 (lcom/ianywhere/ultralitejni12/uljexception;) 08-28 11:49:02.972: w/dalvikvm(18177): vfy: unable find exception handler @ addr 0x30 08-28 11:49:02.972: w/dalvikvm(18177): vfy: rejected lcom/tecomgroup/handifox/applicationobject;.inidatabase ()z 08-28 11:49:02.972: w/dalvikvm(18177): vfy: rejecting opcode 0x0d @ 0x0030 08-28 11:49:02.982: w/dalvikvm(18177): vfy: rejected lcom/tecomgroup/handifox/applicationobject;.inidatabase ()z 08-28 11:49:02.982: i/jdwp(16177): ignoring second debugger -- accepting , dropping 08-28 11:49:02.982: i/jdwp(10406): ignoring second debugger -- accepting , dropping 08-28 11:49:02.982: w/dalvikvm(18177): verifier rejected class lcom/tecomgroup/handifox/applicationobject; 08-28 11:49:02.982: w/dalvikvm(18177): class init failed in newinstance call (lcom/tecomgroup/handifox/applicationobject;) 08-28 11:49:02.982: d/androidruntime(18177): shutting down vm 08-28 11:49:02.982: w/dalvikvm(18177): threadid=1: thread exiting uncaught exception (group=0x40b161f8) 08-28 11:49:03.002: i/jdwp(1622): ignoring second debugger -- accepting , dropping 08-28 11:49:03.032: e/androidruntime(18177): fatal exception: main 08-28 11:49:03.032: e/androidruntime(18177): java.lang.verifyerror: com/tecomgroup/handifox/applicationobject 08-28 11:49:03.032: e/androidruntime(18177): @ java.lang.class.newinstanceimpl(native method) 08-28 11:49:03.032: e/androidruntime(18177): @ java.lang.class.newinstance(class.java:1319) 08-28 11:49:03.032: e/androidruntime(18177): @ android.app.instrumentation.newapplication(instrumentation.java:959) 08-28 11:49:03.032: e/androidruntime(18177): @ android.app.instrumentation.newapplication(instrumentation.java:944) 08-28 11:49:03.032: e/androidruntime(18177): @ android.app.loadedapk.makeapplication(loadedapk.java:477) 08-28 11:49:03.032: e/androidruntime(18177): @ android.app.activitythread.handlebindapplication(activitythread.java:3938) 08-28 11:49:03.032: e/androidruntime(18177): @ android.app.activitythread.access$1300(activitythread.java:123) 08-28 11:49:03.032: e/androidruntime(18177): @ android.app.activitythread$h.handlemessage(activitythread.java:1185) 08-28 11:49:03.032: e/androidruntime(18177): @ android.os.handler.dispatchmessage(handler.java:99) 08-28 11:49:03.032: e/androidruntime(18177): @ android.os.looper.loop(looper.java:137) 08-28 11:49:03.032: e/androidruntime(18177): @ android.app.activitythread.main(activitythread.java:4424) 08-28 11:49:03.032: e/androidruntime(18177): @ java.lang.reflect.method.invokenative(native method) 08-28 11:49:03.032: e/androidruntime(18177): @ java.lang.reflect.method.invoke(method.java:511) 08-28 11:49:03.032: e/androidruntime(18177): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:784) 08-28 11:49:03.032: e/androidruntime(18177): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:551) 08-28 11:49:03.032: e/androidruntime(18177): @ dalvik.system.nativestart.main(native method) 08-28 11:49:03.062: w/activitymanager(1456): force finishing activity com.tecomgroup.handifox/.loginwindow 08-28 11:49:03.142: w/inputmanagerservice(1456): window focused, ignoring focus gain of: com.android.internal.view.iinputmethodclient$stub$proxy@41b9fa50 08-28 11:49:03.352: e/aa(1456): kkk pid=1456 08-28 11:49:03.352: e/aa(1456): kkk cmdlinestring[0]:ystem_server 08-28 11:49:03.352: e/aa(1456): kkk cmdlinestring[1]:null 08-28 11:49:03.582: w/activitymanager(1456): activity pause timeout activityrecord{419f63d0 com.tecomgroup.handifox/.loginwindow}
can it?
scope "provided" should removed (in dependencies), jar libraries merged apk file, default scope "compile".
Comments
Post a Comment