今天终于把maven 编译android工程的事情搞定了,出现了很多问题:
第一 编译依赖库
第二 eclipse编译不报错与在maven 上报错问题解决
1、Conversion to Dalvik format failed with error 1
eclipse报此问题,请用project工具栏,点击clean下拉菜单即可
http://fine36.blog.163.com/blog/static/1892510052011754412344/
android低版本工程(如1.5)放到高版本环境中(如2.2)可能会上述错误,解决方法如下:
1。 如果不修改android sdk版本,则使用project clean 命令作用于某工程即可。
(该处理方式只是在高版本中兼容了低版本工程,未真正意义上的升级)
2。 如果修改android sdk版本,则需要以下几个步骤:
1)修改SDK
选择工程,build path --> configure build path ---> library 删除引用的低版本SDK,
然后add External JARs,选择高版本SDK,OK,保存
2)修改classpath文件
该文件可能存在该项:
3) 修改AndroidManifest.xml
在AndroidManifest.xml文件中,application标签后添加
4) 修改default.properties(很重要)
该文件最后一行(前面没用#的)target=android-3 该成target=android-8,保存。
再看看你的工程和新建的android 2.2的工程结构就一样了。
2、R包找不到-->手动外打jar包
方法详见maven相册 1。选工程导出 2。以java中的Runnable JAR file导出 3。选要运行的main方法 4.libary handling选拷贝必须类库到子文件夹 5.选择导出的文件夹和文件名。点finish |
3、jenkins 编译找不到 import android.support.v4.app.NavUtils 找不到这个包
//import android.support.v4.app.NavUtils;
//import tcl.rd8.junit4maven.R;
//import android.R.id;
直接把////NavUtils.navigateUpFromSameTask(this);
以上是home键的功能函数
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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.tclrd8.app5</groupId>
<artifactId>junit4maven</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>junitmaven</name>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.7</version>
<scope>build</scope>
</dependency>
<dependency>
<groupId>com.google.android</groupId>
<artifactId>android</artifactId>
<version>4.1.1.4</version>
</dependency>
<dependency>
<groupId>com.tclrd8.app5</groupId>
<artifactId>junit4maven</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>E:\workspace\Junit4maven\libs\android-support-v4.jar</systemPath>
</dependency>
<dependency>
<groupId>com.tclrd8.app5</groupId>
<artifactId>junit4maven</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>D:\working\Junit4maven\gen\tcl\rd8\junit4maven\R.jar</systemPath>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<androidManifestFile>${project.basedir}/AndroidManifest.xml</androidManifestFile>
<assetsDirectory>${project.basedir}/assets</assetsDirectory>
<resourceDirectory>${project.basedir}/res</resourceDirectory>
<nativeLibrariesDirectory>${project.basedir}/src/main/native</nativeLibrariesDirectory>
<sdk>
<platform>10</platform>
</sdk>
<undeployBeforeDeploy>true</undeployBeforeDeploy>
</configuration>
<extensions>true</extensions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
<sourceDirectory>src/</sourceDirectory>
</build>
</project>