导出依赖于应用程序引擎模块的Android库



我想导出一个依赖于应用程序引擎模块(module B)的Android库模块(module A)。

在一个带有应用程序模块(module C)的新项目中,我导入了导入.aar文件的module A和导入moduleB/build/libs/moduleB-android-endpoints.jarmodule B。然后,我在module C的渐变文件中添加了module Amodule B作为module C的依赖项。

我可以编译而不会出错,但当我运行module C应用程序时,module B类似乎不在运行时类路径中。

关于如何解决问题的一些提示?

这就是错误:

Caused by: java.lang.NoClassDefFoundError: moduleB.backend.registration.Registration$Builder

请完成以下步骤。它将解决您的问题

1) 构建模块B并复制jar文件。2) 将模块Bjar(moduleBandroidendpoints.jar)添加到模块A的libs文件夹中。3) 打开模块A应用程序渐变文件,并在依赖项目录中添加以下代码。

compile files('moduleB-android-endpoints.jar')

4) 同步模块A并生成。它将生成模块A的aar。5) 打开模块C,将模块A生成的aar文件添加到模块C的libs文件夹中。6) 将以下行添加到模块C应用程序渐变文件中。

dependencies {    
   compile(name:'module A aar file name', ext:'aar')
}
repositories{
   flatDir{
      dirs 'libs'
    }
}

7) 同步和重建模块C。它将工作

我解决了将这些行添加到module C的渐变文件中的问题:

compile ('com.google.api-client:google-api-client-android:1.17.0-rc') {
    exclude module: 'httpclient'
}
compile ('com.google.http-client:google-http-client-gson:1.17.0-rc') {
    exclude module: 'httpclient'
}

这是一个与module B内部自动创建的内部Builder类有关的问题。他们错过了这些依赖。

最新更新