[置顶] 编译移动端服务器jetty3.1步骤和编译错误解决

环境配置:

假设已安装eclipse、adt及android SDK,除了这些还必须做以下配置:

1、m2eclipse
eclipse插件地址:http://m2eclipse.sonatype.org/sites/m2e
如不知,请自行搜索怎样在线安装Eclipse插件

2、maven
其实,m2eclipse已内置maven。若想使用外部的maven,需使用下面的地址来下载http://maven.apache.org/
下载并解压完成后,需在Eclipse->window->preferences->Maven->Installations->Add中添加并使用Maven安装路径。

3、配置环境变量
Window: %MAVEN_HOME% %ANDROID_HOME%
Linux: $MAVEN_HOME $ANDROID_HOME

若不能正常运行,请尝试在PATH变量中添加%MAVEN_HOME%\bin和%ANDROID_HOME%\tools

4、i-jetty下载及导入Eclipse
源码地址:http://code.google.com/p/i-jetty/downloads/list

使用Import->Maven->Existing Maven Projects来导入i-jetty的Maven项目

5、Eclipse下编译Maven项目ijetty-parent
Run as -> maven clean -> maven install 即可。

6、碰到的问题

Cannot find required method
java. lang. NoSuchMethodException : com. android. sdklib. build. ApkBuilder. addNativeLibraries (java. io. File, java. lang. String )

这个主要是android sdk版本比较新,而maven-android-plugin版本较旧引起。
解决办法:

<groupid>com.jayway.maven.plugins.android.generation2 </groupid>
<artifactid>maven-android-plugin </artifactid>
<version>2.9.0-beta-5 </version>

在pom.xml中找到上面的位置,把maven-android-plugin改为android-maven-plugin,2.9.0-beta-5改为3.0.0即可。

在执行dx.jar时,报以下错误:

java. lang. OutOfMemoryError : Java heap space

很明显,android sdk中的dex转换需要更多内存。
解决办法:

<dex>
     <jvmarguments>
          <jvmargument>-Xms256m </jvmargument>
          <jvmargument>-Xmx512m </jvmargument>
     </jvmarguments>
</dex>

在pom.xml中配置maven-android-plugin的 /下添加以上代码。
具体看这里:http://maven-android-plugin-m2site.googlecode.com/svn/dex-mojo.html#dex


错误1:Failed to execute goal com.jayway.maven.plugins.android.generation2:maven-android-plugin:2.9.0-beta-5:generate-sources (default-generate-sources) on project i-jetty: MojoExecutionException: ANDROID-040-001: Could not execute: Command = cmd.exe /X /C "E:\android-sdk-windows\platforms\android-4\tools\aapt.exe package -m -J E:\jetty3.1\i-jetty\i-jetty-ui\target\generated-sources\r -M E:\jetty3.1\i-jetty\i-jetty-ui\AndroidManifest.xml -S E:\jetty3.1\i-jetty\i-jetty-ui\res --auto-add-overlay -I E:\android-sdk-windows\platforms\android-4\android.jar", Result = 1 -> [Help 1]

解决办法:删除i-jetty-ui\res下的layout-xlarge-land文件就可以了。

http://124.16.139.131:24080/lxr/source/sdk/?v=android-4.0.4

错误2:Failed to execute goal com.jayway.maven.plugins.android.generation2:maven-android-plugin:2.9.0-beta-5:apk (default-apk) on project i-jetty: Execution default-apk of goal com.jayway.maven.plugins.android.generation2:maven-android-plugin:2.9.0-beta-5:apk failed: Could not find tool 'apkbuilder'. Please provide a proper Android SDK directory path as configuration parameter <sdk><path>...</path></sdk> in the plugin <configuration/>. As an alternative, you may add the parameter to commandline: -Dandroid.sdk.path=... or set environment variable ANDROID_HOME. -> [Help 1]

解决办法:

修改i-jetty\i-jetty-ui下的pom.xml文件

<groupid>com.jayway.maven.plugins.android.generation2</groupid>
<artifactid>maven-android-plugin</artifactid>
<version>2.9.0-beta-5</version>

(1)把maven-android-plugin修改为android-maven-plugin

(2)把2.9.0-beta-5修改为3.0.0

参考:

https://code.google.com/p/i-jetty/issues/detail?id=106

http://stackoverflow.com/questions/16620655/i-have-updated-android-sdk-to-rev-22-yesterday-and-there-is-no-apkbuilder-in-to

http://124.16.139.131:24080/lxr/source/sdk/?v=android-4.0.4

你可能感兴趣的:(android,jetty)