&引用;“未找到本机TF方法”;导入自己的libandroid\u tensorflow\u expression\u java.jar时

&引用;“未找到本机TF方法”;导入自己的libandroid\u tensorflow\u expression\u java.jar时,android,tensorflow,Android,Tensorflow,对于我们的一个模型,我需要构建TensorFlow的自定义版本,以便导入到我们的应用程序中。默认值不包含某些需要的文件 我在TensorFlow存储库中跟踪了这个问题,其中一些人遇到了与我相同的问题。他们似乎已经找到了如何从源代码成功创建和导入自定义TensorFlow的方法 到目前为止,我成功地创建了libtensorflow\u推理.So和libandroid\u tensorflow\u推理\u java.jar文件。但当我运行应用程序并加载我的模型时,会出现以下错误: FATAL EXC

对于我们的一个模型,我需要构建TensorFlow的自定义版本,以便导入到我们的应用程序中。默认值不包含某些需要的文件

我在TensorFlow存储库中跟踪了这个问题,其中一些人遇到了与我相同的问题。他们似乎已经找到了如何从源代码成功创建和导入自定义TensorFlow的方法

到目前为止,我成功地创建了
libtensorflow\u推理.So
libandroid\u tensorflow\u推理\u java.jar
文件。但当我运行应用程序并加载我的模型时,会出现以下错误:

FATAL EXCEPTION: main
 Process: org.tensorflow.demo, PID: 23980
 java.lang.RuntimeException: Unable to start activity ComponentInfo{org.tensorflow.demo/org.tensorflow.demo.ClassifierActivity}: java.lang.RuntimeException: Native TF methods not found; check that the correct native libraries are present in the APK.
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2817)
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
     at android.app.ActivityThread.-wrap11(Unknown Source:0)
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
     at android.os.Handler.dispatchMessage(Handler.java:105)
     at android.os.Looper.loop(Looper.java:164)
     at android.app.ActivityThread.main(ActivityThread.java:6541)
     at java.lang.reflect.Method.invoke(Native Method)
     at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
  Caused by: java.lang.RuntimeException: Native TF methods not found; check that the correct native libraries are present in the APK.
     at org.tensorflow.contrib.android.TensorFlowInferenceInterface.prepareNativeRuntime(TensorFlowInferenceInterface.java:534)
     at org.tensorflow.contrib.android.TensorFlowInferenceInterface.<init>(TensorFlowInferenceInterface.java:60)
     at org.tensorflow.demo.models.Classifier.<init>(Classifier.java:80)
     at org.tensorflow.demo.models.yolo.YoloClassifier.<init>(YoloClassifier.java:30)
     at org.tensorflow.demo.ClassifierActivity.start(ClassifierActivity.java:269)
     at org.tensorflow.demo.ClassifierActivity.onCreate(ClassifierActivity.java:155)
致命异常:main
流程:org.tensorflow.demo,PID:23980
java.lang.RuntimeException:无法启动活动组件信息{org.tensorflow.demo/org.tensorflow.demo.ClassificationActivity}:java.lang.RuntimeException:未找到本机TF方法;检查APK中是否存在正确的本机库。
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2817)上
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
位于android.app.ActivityThread.-wrap11(未知来源:0)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
位于android.os.Handler.dispatchMessage(Handler.java:105)
位于android.os.Looper.loop(Looper.java:164)
位于android.app.ActivityThread.main(ActivityThread.java:6541)
位于java.lang.reflect.Method.invoke(本机方法)
在com.android.internal.os.Zygote$MethodAndArgsCaller.run上(Zygote.java:240)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
原因:java.lang.RuntimeException:未找到本机TF方法;检查APK中是否存在正确的本机库。
位于org.tensorflow.contrib.android.tensorflowEnferenceInterface.prepareNativeRuntime(tensorflowEnferenceInterface.java:534)
位于org.tensorflow.contrib.android.tensorflowEnferenceInterface。(tensorflowEnferenceInterface.java:60)
位于org.tensorflow.demo.models.Classifier.(Classifier.java:80)
位于org.tensorflow.demo.models.yolo.yoloclassizer.(yoloclassizer.java:30)
位于org.tensorflow.demo.classificateractivity.start(classificateractivity.java:269)
在org.tensorflow.demo.ClassifiedActivity.onCreate(classifiedActivity.java:155)上
我将.jar放在
libs
文件夹中,并将其作为依赖项添加到build.gradle中
编译文件('libs/libandroid\u tensorflow\u interference\u java.jar')

我还在“armeavi-v7a”文件夹中添加了
libtensorflow\u推断.so
(并确保在具有这种cpu架构的设备上运行它)


我尝试将.jar和.so替换为夜间TensorFlow构建中可用的,但出现了相同的错误。因此,我想这个异常与导入有关,我应该遵循哪些步骤来正确地将自定义/外部TensorFlow构建集成为依赖项?

在将自定义库导入到我的项目时,我遇到了相同的问题(我们删除了未使用的操作)。 和您一样,我尝试导入夜间构建,但没有成功

我在尝试在全新的Android projet上运行自定义库时解决了这个问题。我再次遵循这里的说明:模型运行良好

我认为TensorFlow提供的演示使用了很多gradle选项来重命名/移动默认文件夹。从而打破了一些手工进口