【问题标题】:How to import a backend module class into an app module in android studio如何将后端模块类导入android studio中的应用程序模块
【发布时间】:2015-10-16 12:02:06
【问题描述】:

在我的 android 项目中,我有两个模块,

  • 应用模块

  • 后端模块

我想将一个后端模块类导入我的应用模块类之一。但是当我尝试像这样导入它时

import com.me.you.backend.entities

我收到一个错误Error:(52, 58) error: package com.me.you.backend.entities does not exist

我尝试的下一件事是像这样在我的应用程序的build.gradle 中编译我的后端模块

dependencies {
....
compile project(':backend')
}

但是我收到 13 条警告!这种类型的

WARNING: Dependency org.apache.httpcomponents:httpclient:4.4.1 is ignored 
for debug as it may be conflicting with the internal version provided by Android.

In case of problem, please repackage it with jarjar to change the class packages 

当我运行我的应用模块时,我得到了这个错误

 Error:Execution failed for task ':app:packageAllDebugClassesForMultiDex'.

java.util.zip.ZipException:重复条目:com/google/appengine/repackaged/com/google/api/client/auth/oauth2/AuthorizationCodeFlow$Builder.class

问题

我怎样才能成功导入我的后端类?

【问题讨论】:

    标签: java android google-app-engine


    【解决方案1】:

    解决方案是像这样在我的应用模块的build.gradle 中添加对后端模块的依赖

    compile project(path: `:backend`, configuration: `android-endpoints`)
    

    在此之后我重建我的项目(构建 > 重建项目)。一切都很好。

    【讨论】:

      【解决方案2】:

      为什么不尝试创建一个新模块“Commons”。在那里,您可以通过添加 gradle 文件将所有共享类放在“后端”和“应用程序”之间:

      compile project(':commons')
      

      【讨论】:

      • @johny_kb 假设我创建了那个模块,在里面放了一个后端类。该后端类有一个调用另一个后端类的方法。最后,就像将所有后端类放在另一个模块中(复制粘贴)。当我compile project(':commons') 时,我最终会得到相同的警告和错误!
      • 如果我误解了您的意思,请告诉我:您有一个与后端类有引用的类,并且您想与应用程序共享它,因此客户端可以直接调用此方法吗?如果是控件类,我认为你不能在两个模块之间共享它。具有“commons”的解决方案需要在其包域类中,在服务器和客户端之间共享。例如,如果我有一个域类“com.aproject.User”,我可以将它放在“Commons”模块中,然后在后端和应用程序中导入它。
      猜你喜欢
      • 2017-07-10
      • 1970-01-01
      • 2020-06-01
      • 1970-01-01
      • 2021-08-22
      • 2022-01-04
      • 2020-12-14
      • 1970-01-01
      相关资源
      最近更新 更多