gradle 如何将Google MediaPipe用于桌面JavaFX应用程序?

erhoui1w  于 5个月前  发布在  Go
关注(0)|答案(1)|浏览(81)

我想使用Google的Mediapipe作为KotlinJavaFX桌面应用程序。然而,我遇到了一些障碍,这带来了一些问题。

  • 既然它被宣传为Andriod库,你甚至可以将它用于非Andriod目的吗?
  • 如何将Mediapipe用于JavaFXKotlin应用程序?
  • 如果你能使用它,我做错了什么?

我尝试导入它,类似于文档。我的build.gradle.kts看起来类似于下面,但“myMainClass”被替换为我的类的名称。(我对gradle和构建系统相当陌生,所以它主要是复制粘贴,可能是一个愚蠢的错误):

#Imports

plugins {
  java
  application
  kotlin("jvm") version "1.9.0"
  id("com.github.gmazzo.buildconfig") version "3.0.0"
  id("org.openjfx.javafxplugin") version "0.0.13"
}

val mainClass = "myMainClass"

buildConfig {
  buildConfigField ("long", "BUILD_TIME", "${System.currentTimeMillis()}L")
}

repositories {
  mavenCentral()
  google()
  jcenter()
  maven { setUrl("https://plugins.gradle.org/m2/") }
}

javafx {
  version = "19"
  modules = "javafx.controls,javafx.fxml".split(",").toMutableList()
}
application {
  mainClass = "myMainClass"
}

dependencies {
  implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2")
  implementation("org.jetbrains.kotlin:kotlin-stdlib")
  implementation("org.tensorflow:tensorflow-lite:2.5.0")
  implementation("org.tensorflow:tensorflow-lite-gpu:2.5.0")
  implementation("org.tensorflow:tensorflow-lite-support:0.1.0-rc1")
  implementation("com.google.code.gson:gson:2.8.9")
  implementation("com.google.mediapipe:tasks-vision:0.10.7")
}

java {
  withSourcesJar()
  withJavadocJar()
}

configure<JavaPluginConvention> {
  sourceCompatibility = JavaVersion.VERSION_17
  targetCompatibility = JavaVersion.VERSION_17
}

tasks.withType<KotlinCompile> {
  kotlinOptions.jvmTarget = JavaVersion.VERSION_17.toString()
}

字符串
它成功地构建,但当我试图导入Mediapipe时,它给了我一个“未解决的引用”

drnojrws

drnojrws1#

所以,来回答我自己的问题:

  • 是的,一些Android库可以用于非Android目的。
  • 要使用一个库,您可以按照SedJ601的建议来做,并看起来像here,尽管它似乎并不特别适用于MediaPipe
  • 最后,MediaPipe不能用于非Android的目的,它不起作用是因为我没有遵循SedJ601评论中概述的方法

相关问题