在应用级 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”
错误:找不到 com.google.gms:google-services:1.0。在 android studio 的 build.gradle 中添加谷歌服务插件时