构建Tensorflow Lite演示源问题

时间:2018-01-12 09:38:07

标签: android tensorflow-lite

我正在使用带有Gradle 3.3的Android Studio 3.0.3,我正在尝试构建:

https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/lite/java/demo

但我对此问题感到不安:

java.lang.UnsatisfiedLinkError: No implementation found for long org.tensorflow.lite.NativeInterpreterWrapper.createErrorReporter(int) (tried Java_org_tensorflow_lite_NativeInterpreterWrapper_createErrorReporter and Java_org_tensorflow_lite_NativeInterpreterWrapper_createErrorReporter__I)
 at org.tensorflow.lite.NativeInterpreterWrapper.createErrorReporter(Native Method)
 at org.tensorflow.lite.NativeInterpreterWrapper.<init>(NativeInterpreterWrapper.java:47)
 at org.tensorflow.lite.Interpreter.<init>(Interpreter.java:77)
 at com.example.android.tflitecamerademo.ImageClassifier.<init>(ImageClassifier.java:94)
 at com.example.android.tflitecamerademo.Camera2BasicFragment.onActivityCreated(Camera2BasicFragment.java:299)
 at android.app.Fragment.performActivityCreated(Fragment.java:2620)
 at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1296)

3 个答案:

答案 0 :(得分:3)

遵循Dharma的解决方法,我改变了:

自:

compile 'org.tensorflow:tensorflow-lite:+'

要:

compile 'org.tensorflow:tensorflow-lite:0.1'

但是由于Gradle错误,项目无法构建。在Android studio中,我做了以下内容:

档案 - &gt;项目设置 - &gt;项目

来源:
Gradle Version: 4.4, Android Plugin Version: 3.1.0

要:
Gradle Version: 4.1, Android Plugin Version: 3.0.0

Screenshot of Android Studio Project Settings

这些设置基于列出所有正确组合的以下文档:
Table of Plugin & Gradle Versions

通过这些设置,我能够毫无问题地构建和运行示例项目......

答案 1 :(得分:1)

unlist(Map(function(x, y) which(x %in% y), L1, v1 )) #[1] 1 2 4 我也遇到了同样的问题。通过将tensorflow-lite版本回滚到@Jin Yifei,,我能够解决这个问题。据我所知,该演示似乎与0.1(目前是最新的)兼容。

您可以通过更改0.1.1

来完成此操作
app/build.gradle

到此:

compile 'org.tensorflow:tensorflow-lite:+'

答案 2 :(得分:0)

在我的情况下,是因为我选择abifilters作为armeabi:

defaultConfig {
        ndk {
            abiFilters 'armeabi'        }
    }

。但是TFLite官员website表示TFLite仅支持armeabi-v7a和arm64-v8a。