在Android Studio

时间:2015-08-23 15:18:30

标签: android android-studio module

在我的研究没有为我的情景揭示任何有用的解决方案之后,我决定提出这个问题,我认为这应该很受欢迎。

我的问题与此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中执行此操作。任何指导都会有很大帮助。

谢谢!

2 个答案:

答案 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,它们可能就足够了。