繁体   English   中英

Android Studio从外部模块继承类

[英]Android studio inherit class from external module

我有一个带有多个外部模块的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'
    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和Android NDK与com.android.tools.build:gradle-experimental:0.4.0插件一起使用。

我已经在Eclipse中完成了此任务,并且工作正常。

它还使我可以将类从ModuleB移到我的主App模块(但是我不能这样做),请参见图像:(我必须使包名晦涩难懂)。 模

目前,这不能通过实验性NDK插件完成。

我已经用android.productFlavors解决了这个问题。 关键是使代码位于主目录旁边的单独目录中,例如flavour1,将其命名为java-> packageName> someClass.java。 它必须与主应用程序具有相同的程序包名称,但请忽略该名称,因为您可以根据特定的构建风格在gradle中对其进行更改

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

并在构建APK时在清单中替换该包名称。

我从此链接http://blog.robustastudio.com/mobile-development/android/building-multiple-editions-of-android-app-gradle/了解到了这一点

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM