参考项目中的依赖问题

Dependency issues in reference project

我有一个问题,在我的 android 应用程序中被引用为依赖模块 的项目的依赖项似乎没有包含在 .apk 文件中我的 android 申请。

项目设置

"Java model" 作为依赖项添加到 Android 应用程序和 Java 桌面应用程序。

当我 运行 桌面应用程序时,Java 模型的依赖项通过 maven 解析,包含到应用程序中,一切 运行 都很顺利。

从 Android Studio 的角度来看,我已将 Java 模型作为模块导入到 android 项目中,并且 gradle 用于解决依赖关系.我已经设置了以下 gradle 个文件:

Android 应用程序 "settings.gradle"

include ':app'
include ':JavaModel'
project(':JavaModel').projectDir=new File('../../JavaModel')

Android 应用程序 "build.gradle"

dependencies {
    compile project(':JavaModel')
    // and more...
}

Java型号"build.gradle"

dependencies {
    compile(
            'org.apache.httpcomponents:httpclient:4.4.1'
            // and more ...
    )
}

一切都编译得很好,没有任何错误,并且可以在我的测试设备上创建 .apk 和 运行s。但是,一旦我访问应用程序中由 "Java model" 提供的功能(在本例中,我使用的是 HttpClient class来自 org.apache.httpcomponents:httpclient:4.4.1 依赖项),我得到以下异常:

java.lang.ClassNotFoundException: Didn't find class "org.apache.http.impl.client.HttpClients"

请注意,这只是一个示例案例,所有其他仅在 "JavaModel" 中引用但未在 Android 应用本身。

在我看来,"JavaModel" 的依赖项在编译时工作得很好,因为一切都执行得很好,但随后没有包含在 .apk 文件中,因此导致了这个异常。

问题是我如何(正确地)确保将依赖项目的依赖项包含到 .apk 文件中?

Apache http客户端与android一个冲突,如果要使用最近的一个,需要使用android端口https://hc.apache.org/httpcomponents-client-4.3.x/android-port.html

关于 "JavaModel"。如果 JavaModel 的依赖项是编译依赖项,那么它一定能正常工作(假设依赖项没有像类加载器那样的花哨代码)