首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android存储库中的问题-- by 502的颤振TensorFlow-lite lite

Android存储库中的问题-- by 502的颤振TensorFlow-lite lite
EN

Stack Overflow用户
提问于 2021-12-10 18:42:22
回答 1查看 3.8K关注 0票数 4

当我编译我的Android应用程序时,我会得到以下错误

代码语言:javascript
复制
Could not determine the dependencies of task ':app:processDebugResources'.
> Could not resolve all task dependencies for configuration ':app:debugRuntimeClasspath'.
   > Could not resolve org.tensorflow:tensorflow-lite:+.
     Required by:
         project :app > project :tflite
      > Failed to list versions for org.tensorflow:tensorflow-lite.
         > Unable to load Maven meta-data from https://google.bintray.com/exoplayer/org/tensorflow/tensorflow-lite/maven-metadata.xml.
            > Could not get resource 'https://google.bintray.com/exoplayer/org/tensorflow/tensorflow-lite/maven-metadata.xml'.
               > Could not GET 'https://google.bintray.com/exoplayer/org/tensorflow/tensorflow-lite/maven-metadata.xml'. Received status code 502 from server: Bad Gateway

Bintray对这个https://google.bintray.com/exoplayer/org/tensorflow/tensorflow-lite/maven-metadata.xml不感兴趣

在出现此问题后,尝试将android/build.gradle中的存储库从Jcenter()更改为mavenCentral()

我的android/build.gradle

代码语言:javascript
复制
buildscript {
    repositories {
        mavenCentral()
        google()
        //jcenter()
    }

    dependencies {
        //classpath 'com.android.tools.build:gradle:3.5.0'
        classpath 'com.android.tools.build:gradle:3.5.4'
        //classpath 'com.google.gms:google-services:4.3.5'
        classpath 'com.google.gms:google-services:4.3.4'
    }
}

allprojects {
    repositories {
        mavenCentral()
        //google()
        //jcenter()
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

在这个更改之后,错误继续出现,因为它来自Google存储库,但是我不能删除存储库中的Google,因为我使用了一些服务,应该做些什么来解决这个问题呢?我知道been已经关闭了大约10天,但是我想知道如何为张量流-lite包正确地实现mavenCentral()。

我是全新的,我不知道是否可以下载maven元数据,也不知道如何实现maven元数据,所以我需要知道如何解决这些依赖关系,这对我来说非常复杂。

更新

在Android502中,by的依赖问题得到了解决。版本4.1.1。

在等待来自bin托盘的回复并通过电子邮件与我联系之后,我意识到,由于Jfrog正在将工件迁移到Artifactory,最后bintray服务器将被阻塞,电子邮件响应如下:“正如博客文章中所述,bintray将无限期地被太阳化,并且在我们将Bintray工具集迁移到Artifactory时不会是一个功能工具”这是bintray的博客文章

在此之后,绑定盘很可能将不再可用,或者正如电子邮件响应所述,如果Jfrog考虑提升bin托盘服务器,迁移这些工件将需要很长时间。

要解决这一问题并使其完美运作,以下是:

1.检查项目所需的工件。

2.将包含工件的存储库导入到存储库中的build.gradle

3.注释(如果您希望Googlebin托盘返回) google存储库()。

4.验证依赖项的正确实现

所有这一切都将使存储库查找绑定托盘中的依赖项,并从您选择的引发服务器中占用它。

就我个人而言,我的工件在maven()存储库中,所以我在build.gradle中做了这个更改。

将存储库中的google ()和jCenter ()替换为maven ()。

build.gradle

代码语言:javascript
复制
buildscript {
    repositories {
        mavenCentral()
        maven {
            url 'https://maven.google.com'
        }
        //mavenCentral()
        //google()
        //jcenter()
    }

    dependencies {

        //classpath 'com.android.tools.build:gradle:3.5.0'
        classpath 'com.android.tools.build:gradle:4.1.0'

        //classpath 'com.google.gms:google-services:4.3.5'
        classpath 'com.google.gms:google-services:4.3.4'
    }
}

allprojects {
    repositories {
        mavenCentral()
        maven {
            url 'https://maven.google.com'
        }
        //mavenCentral()

        //google()
        //jcenter()
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

这给了他们需要的仓库..。

如果你有谷歌游戏服务器安装,它解决了我的一些问题。

颤振插件

有一个类似的答案相似可以帮助这一点,但它不对应于Android,这一项需要更多的小步骤。

尽管maven ()在一般项目中对build.gradle中的存储库进行了更改,但是仍然会继续搜索google.bintray存储库,因为插件本身在build.gradle中包含了这个存储库,如果没有解决以下问题,肯定会出现此错误。

代码语言:javascript
复制
 > Unable to load Maven meta-data from https://google.bintray.com/exoplayer/org/tensorflow/tensorflow-lite/maven-metadata.xml.

这是一个使用颤振插件"tflite“的例子。

要解决这个问题,您必须寻找由pubspec.yaml获得的颤振插件。

注意:重要的是,这些更改只是暂时的伎俩,直到google修复了它在绑定盘中存储的问题,或者,除非有指向maven ()的版本,否则至少这允许编译应用程序,在我的例子中,它是很好的,但我再说一遍,这是一个技巧,不应该做。

1.在项目级别,查找外部libraries>Flutter pluggins>Search插入错误(例如tflite)中的颤振插件。

2.打开插件并修改其build.gradle,更改工件位于另一台服务器上的存储库,在我的示例中,它仍然在maven ()中。

更改依赖项中工件的版本,如果出现+,则删除它,保留固定版本。

注意:存储库中的"includeGroup“是添加的,这样插入就不会再查找绑定盘插件,如果删除这个插件或google存储库(),我不知道为什么要继续查找路径,所以最好将其排除在外,以便在自指定的存储库中查找。

封堵的build.gradle (例如tflite)

代码语言:javascript
复制
group 'sq.flutter.tflite'
version '1.0-SNAPSHOT'

buildscript {
    repositories {//Changes here ***************
        mavenCentral()
        maven {
            url 'https://maven.google.com'
        }
        google {
            content {
                includeGroup "https://google.bintray.com/exoplayer/org/tensorflow/tensorflow-lite/0.0.1/tensorflow-lite-0.0.1.pom"
            }
        }

    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2'
    }
}

rootProject.allprojects {
    repositories {
        mavenCentral()
        maven {
            url 'https://maven.google.com'
        }
        google {
            content {
                includeGroup "https://google.bintray.com/exoplayer/org/tensorflow/tensorflow-lite/0.0.1/tensorflow-lite-0.0.1.pom"
            }
        }
    }
}

apply plugin: 'com.android.library'

android {
    compileSdkVersion 27

    defaultConfig {
        minSdkVersion 16
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    lintOptions {
        disable 'InvalidPackage'
    }

    dependencies {//Changes here, delete 0.0.5+ to 0.0.5 example..
        compile 'org.tensorflow:tensorflow-lite:0.0.1-gpu-experimental'
    }
}

提醒:记住要很好地检查存储库,并在依赖项中删除包含+的版本,例如0.0.5+,并将其更改为现有的固定版本示例0.0.2。

如果您的编辑器说该文件不属于您的项目,请选择“我无论如何要编辑该文件”。

所有这些更改都会导致颤振插件本身搜索一个具有补充功能的服务器,而谷歌并不修复它或启动一个新版本,如果您更新了pubspec.yaml,您可以在插件中恢复您自己的更改,所以要小心,但这应该会对您进行当前编译。

EN

回答 1

Stack Overflow用户

发布于 2022-06-30 10:41:55

我有同样的Error.In,我的案例我用简单的方法来解决这个问题。

  1. 转到External libraries -> Flutter pluggins -> tflite-1.1.2 -> android -> build.gradle

  1. 更改依赖项

compile 'org.tensorflow:tensorflow-lite:1.1.2' & compile 'org.tensorflow:tensorflow-lite-gpu:1.1.2'

变成这样

代码语言:javascript
复制
implementation 'org.tensorflow:tensorflow-lite:2.3.0'
implementation 'org.tensorflow:tensorflow-lite-gpu:2.3.0'

这是me.Try的工作,谢谢你。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70309075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档