gpt4 book ai didi

android - 引用项目中的依赖问题

转载 作者:太空狗 更新时间:2023-10-29 13:19:46 26 4
gpt4 key购买 nike

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

项目设置

  • Android 应用程序(Android studio 和 gradle)
  • Java 桌面应用程序(IntelliJ/maven/gradle 项目)
  • Java 模型(Android 和桌面应用程序使用的类和功能)

“Java 模型”作为依赖项添加到 Android 应用程序和 Java 桌面应用程序。

当我运行桌面应用程序时,JavaModel 的依赖项通过 maven 解决,包含到应用程序中,一切运行顺利。

从 Android Studio 的角度来看,我已将 JavaModel 作为模块导入到 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 并在我的测试设备上运行。但是,只要我在应用程序中访问由“Java 模型”提供的功能(在此示例中,我使用的是 中的 HttpClient 类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 的依赖项是编译依赖项,那么它都必须正常工作(假设依赖项没有类加载器等花哨的代码)

关于android - 引用项目中的依赖问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30423677/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com