在我的研究没有为我的情景揭示任何有用的解决方案之后,我决定提出这个问题,我认为这应该很受欢迎。
我的问题与此SO question略有关系,但解决方案在我的方案中没有帮助。
我想创建一个只包含我的应用程序逻辑的Java模块。也就是说,我不希望它成为Android库模块。我不需要为这样的库提供清单文件和其他文件。我的应用程序逻辑Java模块中不会有任何Android活动。所有特定于Android的代码都将在Android模块中(称为 app )。我的Java模块名为 applogic 。
从技术上讲,我希望我的项目看起来像
AppProjectName
|-->app //Only Android-specific code here
|
-->src
|-->applogic //General, reusable Java-code here
|
-->src
在 app 模块设置中,我将 applogic 添加为模块依赖项。 在我的Android app 中,我创建了在 applogic 中的类中定义的对象。我能够轻松地做到这一点。
这就是事情。我想使用Android的日志记录功能(在android.util.Log
中)。我如何将它用于我的Java库?
上述SO问题中陈述的可能解决方案是将android.jar
作为库添加到我的applogic
模块中。我无法在Android Studio中执行此操作。任何指导都会有很大帮助。
谢谢!
答案 0 :(得分:5)
如果您在Android Studio创建的项目的上下文中运行,则会有一个local.properties
文件提供SDK位置。即使你没有这样一个自动生成的文件,也没有什么能阻止你创建它。它看起来像这样:
## This file is automatically generated by Android Studio. # Do not modify this file -- YOUR CHANGES WILL BE ERASED! # # This file must *NOT* be checked into Version Control Systems, # as it contains information specific to your local configuration. # # Location of the SDK. This is only used by Gradle. # For customization when using a Version Control System, please read the # header note. #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插件一样:
dependencies { Properties localProps = new Properties() localProps.load(project.rootProject.file('local.properties').newDataInputStream()) implementation files("${localProps.getProperty('sdk.dir')}/platforms/android-15/android.jar") }
当然,您必须确保已使用Android SDK Manager下载了相应版本的平台,但如果您是Android开发人员,则可能已经完成了此操作。
答案 1 :(得分:0)
Android API的JAR由第三方提供uploaded to Maven Central and JCenter。不幸的是,它们已经好几年没有更新了,但是如果你不需要比Android 4.1更晚的API,它们可能就足够了。