BIntry 502在Android存储库颤动TensorFlow-Lite中的问题 [英] Problems in Android repository Flutter TensorFlow-lite by Bintray 502

查看:152
本文介绍了BIntry 502在Android存储库颤动TensorFlow-Lite中的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我编译我的Android Ffltter应用程序时,我收到此错误

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

Binty为此https://google.bintray.com/exoplayer/org/tensorflow/tensorflow-lite/maven-metadata.xml

已关闭

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

我的Android/build.gradle

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 Binty存储库,但是我无法从存储库中删除Google,因为我使用了一些服务,应该如何解决这个问题?我知道Binty已经停机大约10天了,但我想知道如何为tensor-flow-lite包正确实现mavenCentral()。

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

[更新]

Android[502]中Binty的依赖关系问题已解决。IDE Android Studio版本4.1.1。

在等待binray的响应并通过电子邮件与我联系之后,我意识到,由于Jfrog正在将工件迁移到ArtiFactory,最终binray服务器将被阻塞,电子邮件响应如下 正如博客文章中所述,Bintery将被无限期地淘汰,并且不会成为一个功能强大的工具,因为我们将Bintery工具集迁移到了ArtiFactory中。 "; This is the blog post for bintray is down

在此之后,宾托盘很可能不再可用,或者,尽管如电子邮件回复所述,如果JFrog考虑提升宾托盘服务器,则迁移工件将需要很长时间。

要解决此问题并使其完美工作,请执行以下操作:

[1]检查您的项目需要哪些项目

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

[3]评论Google存储库()。

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

所有这些都将使存储库查找二进制任务栏中的依赖项,并从您选择的提升服务器中占用它。

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

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

build.gradle


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
}

这使他们获得了所需的存储库.

检查您是否安装了Google Play服务,它为我解决了一些问题。

扑翼插件

有一个类似的答案similar对此有帮助,但它与Android IDE不对应,此答案需要多几个小步骤。

尽管一般项目中的maven()在build.gradle中对存储库进行了更改,但Ffltter插件(有些)将继续搜索google.binray存储库,因为插件本身的内部就有这个存储库。gradle,如果不解决以下问题,肯定会出现此错误。

 > 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.]在项目级别,在外部库中查找颤动插件&>颤动插件&>搜索插入错误(示例tflite)。

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

更改依赖项中项目的版本,如果出现+,请将其删除,并保留固定版本。

注意:已添加存储库中的";include deGroup";,这样插件就不会再次查找收件箱插件,如果您删除此插件或Google存储库(),我不知道为什么插件会一直查找该路径,因此最好将其排除,以便在自行指定的存储库中查找。

build.gradle of Plug(示例tflite)

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。

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

所有这些更改都将导致颤动插件本身搜索具有补充性且正常工作的服务器,而Google不修复此问题或启动新版本,如果您更新pubspec.yaml,您可能会恢复插件中自己的更改,因此请小心,但这应该会暂时对您进行编译。

推荐答案

我可以确认这是有效的修复程序。已经提升了您的答案。

这是我为TensorFlow-Lite项目修改的tflite Build Gradle插件

group 'sq.flutter.tflite'
version '1.0-SNAPSHOT'

buildscript {
    repositories {
        google()
        mavenCentral()
    }

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

rootProject.allprojects {
    repositories {
        google()
        mavenCentral()
    }
}

apply plugin: 'com.android.library'

android {
    compileSdkVersion 30

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

    dependencies {
        implementation 'org.tensorflow:tensorflow-lite:2.3.0'
        implementation 'org.tensorflow:tensorflow-lite-gpu:2.3.0'
    }
}

这是我当前的内部版本Gradle。我把所有的jcenter改成mavenccenter以使其正常工作。我的项目现在可以脱机和联机工作。

buildscript {
    ext.kotlin_version = '1.3.50'
    repositories {
        google()  // Google's Maven repository
        mavenCentral()  // removed jcenter add this
    }

    dependencies {
        classpath 'com.google.gms:google-services:4.3.4'
        classpath 'com.android.tools.build:gradle:4.0.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

allprojects {
    repositories {
        google()  // Google's Maven repository
        mavenCentral() // removed jcenter add this
    }
}

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

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

通过IM使用TFlite plugin version 1.1.1

Gradle包装器版本

distributionUrl = https://services.gradle.org/distributions/gradle-6.1.1-all.zip

这篇关于BIntry 502在Android存储库颤动TensorFlow-Lite中的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆