在我的研究未发现适用于我的情况的任何有用解决方案(我认为应该很受欢迎)之后,我决定问这个问题。

我的问题与此SO question稍有关系,但是该解决方案在我的情况下没有帮助。

我想创建一个仅包含我的应用程序逻辑的Java模块。也就是说,我不希望它成为Android Library模块。对于这样的库,我不需要清单文件和其他文件。我的应用程序逻辑Java模块中没有任何Android活动。所有特定于Android的代码都将位于Android模块(称为app)中。我的Java模块称为applogic。

所以从技术上讲,我希望我的项目看起来像

AppProjectName
|-->app //Only Android-specific code here
   |
   -->src
|-->applogic //General, reusable Java-code here
   |
   -->src


在应用程序模块设置中,我将applogic添加为模块依赖项。
在我的Android应用中,我创建了在applogic中的类中定义的对象。我很容易做到。

这就是事情。我想使用Android的日志记录功能(在android.util.Log中)。如何将其用于Java库?

上面提到的SO问题中提到的一种可能的解决方案是将android.jar作为库添加到我的applogic模块中。我无法在Android Studio中做到这一点。任何指导将大有帮助。

谢谢!

最佳答案

如果您在Android Studio创建的项目的上下文中运行,则将有一个local.properties文件,其中提供了SDK位置。即使您没有这样的自动生成的文件,也没有什么可以阻止您创建它的。看起来像这样:

##此文件由Android Studio自动生成。
#请勿修改此文件-您的更改将被清除!

#此文件必须*不要*签入版本控制系统,
#,因为它包含特定于本地配置的信息。

#SDK的位置。仅由Gradle使用。
#有关在使用版本控制系统时进行自定义的信息,请阅读
#标头注释。
#Tue Apr 04 12:34:41 BST 2017
ndk.dir = C \:\\ Users \\ smith \\ Programs \\ android-sdk \\ ndk-bundle
sdk.dir = C \:\\ Users \\ smith \\ Programs \\ android-sdk


无论哪种方式,您都可以按照我认为与Android Gradle插件相同的方式使用它:

依赖项{
    属性localProps =新的Properties()
    localProps.load(project.rootProject.file('local.properties')。newDataInputStream())
    实现文件(“ $ {localProps.getProperty('sdk.dir')} / platforms / android-15 / android.jar”)
}


当然,您必须确保已使用Android SDK Manager下载了适当版本的平台,但是如果您是Android开发人员,则可能已经做到了。

07-24 09:35
查看更多