【发布时间】:2014-12-15 15:54:38
【问题描述】:
如何从Volley project (git repository) 中制作 .jar 文件?
我尝试按照this answer 中的说明进行操作,但是在克隆的volley 文件夹中运行android update project -p . 会引发此错误:
Error: . is not a valid project (AndroidManifest.xml not found).
【问题讨论】:
如何从Volley project (git repository) 中制作 .jar 文件?
我尝试按照this answer 中的说明进行操作,但是在克隆的volley 文件夹中运行android update project -p . 会引发此错误:
Error: . is not a valid project (AndroidManifest.xml not found).
【问题讨论】:
Volley 的构建过程已更改为 Gradle。如果您只想使用该库而不构建它,您可以从 Maven 获取 Jar 或向下滚动到此答案下方的说明以自行构建它。
Maven
获取 Jar 文件的一种更简单的方法是直接从 Maven Central 下载它。您可以通过此搜索找到最新版本:
http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22com.mcxiaoke.volley%22
在撰写本文时,可以在此处找到 1.0.19 版本:
http://search.maven.org/remotecontent?filepath=com/mcxiaoke/volley/library/1.0.19/library-1.0.19.jar
Gradle
新的方法是使用 Gradle 构建项目。
你可以通过运行来做到这一点:
git clone https://android.googlesource.com/platform/frameworks/volley
gradle build
这将在
中创建一个文件build\intermediates\bundles\release
然后将此文件添加到您的 libs 文件夹中并添加到您的项目中。
【讨论】:
在您在命令提示符下运行android update project -p . 命令之前,首先运行此命令git checkout 008e0cc8 它会抑制任何错误,尤其是(AndroidManifest.xml 未找到),然后您现在可以运行android update project -p . 它可以工作
【讨论】:
他们将项目移至 gradle。您需要使用 gradle 构建项目。 你可以找到详细解释如何使用gradle命令制作volley jar here。
在构建 volley 项目之前,您可能需要设置一些环境变量,例如将 gradle 位置添加到 PATH 或设置 ANDROID_HOME。
【讨论】:
@Sateesh G 答案是更好的答案。以下是我在 OS X 上将 volley 构建为 aar 的步骤。(假设您已经安装并运行了 git、gradle 和 android 开发工具)
export ANDROID_HOME=~/.android-sdk/android-sdk-macosx
git clone https://android.googlesource.com/platform/frameworks/volley
cd volley
已配置的 roblectric 及其依赖项
echo 'emulateSdk=18'>>src/test/resources/org.robolectric.Config.properties
cat<<END>rules.gradle
allprojects {
repositories {
jcenter()
}
}
dependencies {
testCompile 'junit:junit:4.12'
testCompile 'org.apache.maven:maven-ant-tasks:2.1.3'
testCompile 'org.mockito:mockito-core:1.9.5'
testCompile 'org.robolectric:robolectric:2.4'
}
END
构建 aar
gradle wrapper
./gradlew clean build
输出文件将位于
build/outputs/aar
最后将生成的 aar 文件包含在您的 Android 项目中;将 volley-release.aar 文件复制到项目下的 libs 子目录中,并将以下内容添加到项目的 build.gradle 文件中
repositories {
flatDir {
dirs 'libs'
}
}
compile('com.android.volley:volley-release:1.0.0@aar')
【讨论】: