不能在模块中使用 android-maps-utils

Cannot use android-maps-utils in module

我有一个包含两个模块的项目; main 应用程序模块和我包含在应用程序模块中的另一个模块,我们将此模块称为 myModule。

我想在 myModule 中使用 SphericalUtil,它包含在 android-maps-utils 中,所以我将 compile 'com.google.maps.android:android-maps-utils:0.5+' 添加到属于 [=14] 的 build.gradle 文件中=].

奇怪的是我无法导入任何属于 android-maps-utils 库的 classes,它似乎不存在于 myModule 中,即使我没有 gradle 错误。当我在属于 myModule 的任何 classes 中键入 SphericalUtil 时,我得到了对“Add library android-maps-utils to classpath”的建议,但它似乎没有做任何事情。

当我在应用程序模块 gradle 文件中添加完全相同的行时,它似乎确实有效。我可以在属于应用程序模块的任何 class 中键入 SphericalUtil,并且 Android Studio 可以识别 class 并允许我自动导入它。

我也尝试过使用不同的库,例如okhttp,但没有问题,我可以在 myModule 中自动导入和使用它,所以这个问题似乎与 android-maps-utils 有关。也许按照将库添加到 class 路径的建议破坏了事情?我真的没有猜测,所以任何帮助都非常有用。

如果有帮助,myModule gradle 文件如下所示:

apply plugin: 'java-library'

repositories {
    maven { url "https://maven.google.com" }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])

    // https://mvnrepository.com/artifact/com.google.android/android
    compileOnly group: 'com.google.android', name: 'android', version: '4.1.1.4'

    compile 'com.google.maps.android:android-maps-utils:0.5+'

    compile 'com.squareup.okhttp3:okhttp:3.8.1'

    compile files('libs/experiment.resultlogger-0.0.2.jar')
}

sourceCompatibility = "1.7"
targetCompatibility = "1.7"

您需要使用 Android 模块插件而不是 java 插件。正如 following documentation 所说:

To create a new library module in your project, proceed as follows:

  1. Click File > New > New Module.

  2. In the Create New Module window that appears, click Android Library, then click Next. There's also an option to create a Java Library, which builds a traditional JAR file. While a JAR file is useful for many projects—especially when you want to share code with other platforms—it does not allow you to include Android resources or manifest files, which is very useful for code reuse in Android projects. So this guide focuses on creating Android libraries.

3.Give your library a name and select a minimum SDK version for the code in the library, then click Finish.

要解决 AndroidManifest.xml 问题,您可以使用如下方法:

<?xml version="1.0" encoding="utf-8"?>
<manifest package="com.your.library"/>