在应用级 gradle 文件之外添加 google ml-kit 依赖项

Posted

技术标签:

【中文标题】在应用级 gradle 文件之外添加 google ml-kit 依赖项【英文标题】:add google ml-kit dependecy outside the app-level gradle file 【发布时间】:2021-12-19 08:03:45 【问题描述】:

我正在关注 Google 的 instructions,了解如何在我的应用程序中实现“Google ML Kit”。它说

Before you begin
In your project-level build.gradle file, make sure to include Google's Maven repository in both your buildscript and allprojects sections.
Add the dependencies for the ML Kit android libraries to your module's app-level gradle file, which is usually app/build.gradle:


dependencies 
  // If you want to use the base sdk
  implementation 'com.google.mlkit:pose-detection:17.0.1-beta6'
  // If you want to use the accurate sdk
  implementation 'com.google.mlkit:pose-detection-accurate:17.0.1-beta6'

但是,我需要在我的应用程序之外的库中使用 ML-Kit。它基本上是一个 java 库,可以在我的应用程序中使用。它还有一个 gradle 文件。但是,当我在那里添加依赖项时,我无法导入任何 ml-kit 类。

这是我的 java 库的 gradle 文件:

apply plugin: 'java-library'


dependencies 

    api 'com.annimon:stream:1.2.2'

    api 'org.javatuples:javatuples:1.2'
    api 'com.google.guava:guava:30.1.1-jre'

    // JSON
    implementation 'org.json:json:20210307'
    implementation 'androidx.annotation:annotation:1.2.0'
    implementation 'com.fasterxml.jackson.core:jackson-databind:2.12.4'
    implementation 'com.google.mlkit:pose-detection:17.0.1-beta6'


sourceCompatibility = "8"
targetCompatibility = "8"

gradle 同步仍然成功,但是在我的 java 库的任何其他类中导入任何类时,我收到导入错误:

import com.google.mlkit.vision.pose.defaults.PoseDetectorOptions;

--> 无法解析符号mlkit

知道我能做些什么吗?

【问题讨论】:

这是 ML Kit 特有的问题还是 gradle 设置的一般问题?你能用其他库做到这一点吗? 例如,如果这个库是唯一的依赖于实现“androidx.lifecycle:lifecycle-livedata:2.3.1”,你可以导入androidx.lifecycle.LiveData并成功构建? 【参考方案1】:

同时我发现了问题:上面的gradle文件属于纯java库,后来集成到android中。 ML-Kit 显然不能用于 Java 项目。仅当我将 ML-Kit 集成到纯 android gradle 项目中时它才有效

【讨论】:

以上是关于在应用级 gradle 文件之外添加 google ml-kit 依赖项的主要内容,如果未能解决你的问题,请参考以下文章

无法在 gradle 文件中应用“android-reporting”

根据风味文件夹内容有条件地应用 gradle 插件

系统级app应用添加签名并打包

错误:找不到 com.google.gms:google-services:1.0。在 android studio 的 build.gradle 中添加谷歌服务插件时

错误构建gradle

将 Google Cloud 语言库添加到 Android 应用时出现重复的类