我有一个带有几个外部模块的android工作室项目(模块位于不同的文件路径上),我无法让Android Studio从模块中看到抽象类。
某些模块依赖于其他模块,例如:ModuleA是ModuleB的依赖项,ModuleB是我的主app模块的依赖项。 ModuleB可以从ModuleA看到抽象类,但我的主app模块无法从ModuleB看到抽象类。
我已在gradle文件中的主app模块中包含模块依赖项
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:design:23.1.1'
compile project(':ModuleB')
}
我只有一个 settings.gradle,它位于主app模块的根目录下。在settings.gradle中,我有我在此项目中使用的模块的文件路径。
在我的主app模块中,我有一个类projectHelper,它扩展了 ModuleB 中的抽象类。例如:
public class projectHelper extends Helper {
}
无论我尝试什么,我都无法让主模块应用程序从ModuleB模块中看到抽象的Helper类。
Gradle sync传递正常,但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中完成了这项工作,它没有任何问题。
答案 0 :(得分:0)
目前,这不能用实验性NDK插件完成。
我用android.productFlavors解决了这个问题。关键是要将主目录旁边的代码放在单独的目录中,如flavour1,给它java-> packageName> someClass.java。它必须与主应用程序具有相同的包名称,但忽略它,因为您可以在gradle中以特定的构建风格更改它
create("googleFree") {
applicationId = "com.example.mySpecialPackage"
}
并且在构建APK时,将在清单中替换该包名称。
了解到的