是否可以在非Android应用程序中使用Android支持库?

时间:2018-10-09 05:41:56

标签: java android

有一个开放源代码project,其中包含许多我想使用的类。但是,此项目是一个android应用程序,因此它使用了Android平台和Android支持库中的许多类。理想情况下,我想分叉该项目并在自己的项目中使用它,但是我不确定该如何处理。我的主要问题是,Android支持库是否可以用作非Android项目中的依赖项。

我的方法是在我的派生仓库中创建一个新文件夹,编写gradle构建文件,该文件将复制所有必需的Java文件,然后尝试对其进行编译。失败并带来大量导入错误,因此我尝试执行以下操作:

build.gradle

apply plugin: 'java'

allprojects {
    repositories {
        mavenCentral()
        google()
    }
}

dependencies {
    implementation "com.google.android:android:4.1.1.4"
    implementation "com.android.support:support-v4:28.0.0"
}

Test.java

import android.graphics.Color;
import android.support.v4.app.Fragment;

public final class Test {
        public static void main(String[] args) {
                System.out.println("Hello");
        }
}

当它只是“ import android.graphics.Color”时,我能够成功编译它。但是,一旦我从支持库“ import android.support.v4.app.Fragment”中添加了一些内容,它便开始给我错误:

package android.support.v4.app does not exist

寻找有关是否我正以正确的方式进行操作或是否仅在构建Android应用程序(例如,使用Apply插件:'com.android.application'而不是Android应用程序库dep才能工作)的所有信息的情况下'java')

1 个答案:

答案 0 :(得分:1)

支持库取决于Android SDK,Android Studio中的构建工具会自动将其包含在Android项目中。

即使您要包含这些内容,它也不会运行,因为SDK只是手机或平板电脑上基本实现上方的接口。

您可能会尝试将Robolectric与支持库结合使用。 Robolectric是一个虚拟的Android SDK,其背后是最基本的实现,所有实现都在本地完成,因此您不需要任何设备(最初用于通过Android代码运行单元测试)。 您可以签出Robolectric here