gpt4 book ai didi

java - Android studio 从外部模块继承类

转载 作者:行者123 更新时间:2023-11-30 01:39:23 25 4
gpt4 key购买 nike

我有一个带有多个外部模块的 android studio 项目(模块位于不同的文件路径上),我无法设法让 Android Studio 看到模块中的抽象类。

一些模块依赖于其他模块,例如:ModuleA 是 ModuleB 的依赖项,ModuleB 是我的主应用程序模块的依赖项。 ModuleB 可以看到 ModuleA 的抽象类,但我的主应用程序模块看不到 ModuleB 的抽象类。

  • 我在 gradle 文件中的主应用程序模块中包含了模块依赖项

    dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:design:23.1.1'<br/>
    compile project(':ModuleB')
    }

  • 我只有一个 settings.gradle,它位于主应用程序模块的根目录中。在 settings.gradle 中,我有我在这个项目中使用的模块的文件路径。

在我的主应用程序模块中,我有一个类 projectHelper,它扩展了 ModuleB 的抽象类。例如:

public class projectHelper extends Helper {

}

无论我怎么尝试,我都无法让主模块应用程序看到来自 ModuleB 模块的抽象 Helper 类。

Gradle 同步通过正常,但 Studio 报告无法解析 Helper 类。

我试图从 ModuleB 中包含包,甚至扩展类,如“extends com.android.ModuleB.Helper”,但类和包都无法解析。

我正在使用 Android Studio 1.5.1 和带有 com.android.tools.build:gradle-experimental:0.4.0 插件的 Android NDK。

我已经在 Eclipse 中完成了这项工作并且没有问题。

它还允许我将类从 ModuleB 移动到我的主 App 模块(但我不能这样做),参见图片:(我不得不隐藏包名称)。 module

最佳答案

目前,这无法通过实验性 NDK 插件完成。

我已经用 android.productFlavors 解决了这个问题。重点是将代码放在主目录旁边的单独目录中,比如 flavor1,给它 java->packageName>someClass.java。它必须与主应用程序具有相同的包名称,但忽略它,因为您可以在特定构建风格的 gradle 中更改它

create("googleFree") {
applicationId = "com.example.mySpecialPackage"
}

构建 APK 时, list 中的包名称将被替换。

我是从这个链接中学到的 http://blog.robustastudio.com/mobile-development/android/building-multiple-editions-of-android-app-gradle/

关于java - Android studio 从外部模块继承类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34698454/

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