【问题标题】:How to make a .jar out of the Volley project?如何从 Volley 项目中制作 .jar?
【发布时间】: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).

【问题讨论】:

    标签: android android-volley


    【解决方案1】:

    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 文件夹中并添加到您的项目中。

    【讨论】:

    • 我最终使用了另一个库,所以我不会验证这个答案的正确性,但根据赞成的数量,我认为它是正确的,因此接受。不过还是谢谢你。
    • 我想知道添加步骤“git checkout 008e0cc8”的原因是什么?这是在做什么?非常感谢。
    • 添加此步骤的原因是在jar文件过程被破坏之前签出旧版本的存储库。我正在用更简单的方式更新答案。
    • 为什么 library-1.0.15.jar 的大小 (90.8 KB) 比构建的 jar (84.3 KB) 大?!
    • 这不是谷歌,是吗?另外我想知道你是否不介意@Zabri 你最后使用了什么库?
    【解决方案2】:

    在您在命令提示符下运行android update project -p . 命令之前,首先运行此命令git checkout 008e0cc8 它会抑制任何错误,尤其是(AndroidManifest.xml 未找到),然后您现在可以运行android update project -p . 它可以工作

    【讨论】:

      【解决方案3】:

      他们将项目移至 gradle。您需要使用 gradle 构建项目。 你可以找到详细解释如何使用gradle命令制作volley jar here

      在构建 volley 项目之前,您可能需要设置一些环境变量,例如将 gradle 位置添加到 PATH 或设置 ANDROID_HOME。

      【讨论】:

        【解决方案4】:

        @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')
        

        【讨论】:

          猜你喜欢
          • 2014-03-09
          • 1970-01-01
          • 2012-07-06
          • 2012-03-20
          • 1970-01-01
          • 2015-06-23
          • 2017-09-17
          • 2016-10-01
          相关资源
          最近更新 更多