我正在开展一个小项目,以允许cookie持续存在。我想将项目作为JAR,以便其他开发人员可以在项目中使用它。目前我能够将项目构建为APKLIB,但这似乎是不必要的,因为不需要资源。如果我将包装更改为JAR,则在构建
时会出现以下错误结果:
错误测试:
shouldAddCookie(com.doward.persistantcookietest.PersistantCookieStoreTest): java.lang.ClassNotFoundException:获取时捕获异常 com.doward.persistantcookies.R的类文件 shouldClearAllCookies(com.doward.persistantcookietest.PersistantCookieStoreTest): java.lang.ClassNotFoundException:获取时捕获异常 com.doward.persistantcookies.R的类文件 shouldClearExpired(com.doward.persistantcookietest.PersistantCookieStoreTest): java.lang.ClassNotFoundException:获取时捕获异常 com.doward.persistantcookies.R的类文件
POM看起来像这样
<?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>com.doward</groupId>
<artifactId>persistantcookiestore</artifactId>
<version>1</version>
<packaging>jar</packaging>
<name>persistantcookies</name>
<dependencies>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20090211</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.pivotallabs</groupId>
<artifactId>robolectric</artifactId>
<version>1.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>android</groupId>
<artifactId>android</artifactId>
<version>4.2.2_r2</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>3.3.2</version>
<configuration>
<androidManifestFile>${project.basedir}/AndroidManifest.xml</androidManifestFile>
<sdk>
<platform>17</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>
</build>
</project>
答案 0 :(得分:1)
如果您只想从.class
个文件构建JAR文件而没有资源,例如没有XML文件与布局,值,颜色等相关,那么您可以从命令行执行此操作:
jar -cvf <filenameorjar.jar> <files to be included>
示例:
jar -cvf cookiepersist.jar com/*
这将在当前工作目录中创建一个jar文件,并包含当前工作目录中目录.class
中的所有com
个文件。
答案 1 :(得分:0)
如果你有一个andorid项目,并且你希望在另一个项目中使用它,你可以将项目作为一个库项目,并在另一个Android项目中引用它。这也包括您的资源。
http://developer.android.com/tools/projects/projects-eclipse.html
您导出的实用程序类不引用android中的资源,即纯java类。如果您使用eclipse,您可以查看下面的教程
http://androiddevelopement.blogspot.in/2011/01/creating-jar-file-in-eclipse.html