可以参考官网:https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/android#android-studio

官网讲的很简单:

Android Studio may be used to build the demo in conjunction with Bazel. First, make sure that you can build with Bazel following the above directions. Then, look at build.gradle and make sure that the path to Bazel matches that of your system.

At this point you can add the tensorflow/examples/android directory as a new Android Studio project. Click through installing all the Gradle extensions it requests, and you should be able to have Android Studio build the demo like any other application (it will call out to Bazel to build the native code with the NDK).

简单地讲:就是

1、安装bazel

2、下载tensorflow官网代码,在tensorflow/examples/android下的build.gradle中修改bazel的路径

3、用android studio 打开tensorflow/examples/android

4、gradle会根据配置说缺少什么什么版本的api,就直接anzhuang(安装)

5、run

然后报错:

* What went wrong:
Execution failed for task ':buildNativeBazel'.
> Process 'command '/usr/bin/bazel'' finished with non-zero exit value 1

其实,这就是buildNativeBazel,用ctrl+shift+f,输入buildNativeBazel,有兩個結果:

def nativeBuildRule = 'buildNativeBazel'
task buildNativeBazel(type: Exec) {
workingDir '../../..'
commandLine bazelLocation, 'build', '-c', 'opt', \
'tensorflow/examples/android:tensorflow_native_libs', \
'--crosstool_top=//external:android/crosstool', \
'--cpu=' + cpuType, \
'--host_crosstool_top=@bazel_tools//tools/cpp:toolchain'
}

第一条结果就是一个定义,没什么用。主要是第二条,发现执行这个命令,bazel build ....执行的目录是在tensorflow下,所以想到

官网上的Building the Demo with TensorFlow from Source

需要配置

Edit WORKSPACE

NOTE: As long as you have the SDK and NDK installed, the ./configure script will create these rules for you. Answer "Yes" when the script asks to automatically configure the ./WORKSPACE.

The Android entries in <workspace_root>/WORKSPACE must be uncommented with the paths filled in appropriately depending on where you installed the NDK and SDK. Otherwise an error such as: "The external label '//external:android/sdk' is not bound to anything" will be reported.

Also edit the API levels for the SDK in WORKSPACE to the highest level you have installed in your SDK. This must be >= 23 (this is completely independent of the API level of the demo, which is defined in AndroidManifest.xml). The NDK API level may remain at 14.

也就是直接打开WORKSPACE文件,将下面的填上就好了,注意andriod studio 最新的是安装ndk16,现在bazel还不支持,所以自己下载r14b,解压,然后路径填写自己解压的就可以,而sdk version 也就是api level,填写和在tensorflow/examples/android下的build.gradle中使用的版本一致就可以,因为android studio 的gradle会自动下载相应的版本,就是“4、gradle会根据配置说缺少什么什么版本的api,就直接anzhuang(安装)”

#android_sdk_repository(
#    name = "androidsdk",
#    api_level = 23,
#    # Ensure that you have the build_tools_version below installed in the
#    # SDK manager as it updates periodically.
#    build_tools_version = "25.0.2",
#    # Replace with path to Android SDK on your system
#    path = "<PATH_TO_SDK>",
#)
#
# Android NDK r12b is recommended (higher may cause issues with Bazel)
#android_ndk_repository(
#    name="androidndk",
#    path="<PATH_TO_NDK>",
#    # This needs to be 14 or higher to compile TensorFlow.
#    # Note that the NDK version is not the API level.
#    api_level=14)

取消#注释,然后填入,再run就ok啦。

参考:

http://blog.csdn.net/masa_fish/article/details/54585537

http://blog.csdn.net/masa_fish

TensorFlow Android Camera Demo 使用android studio编译安装和解决Execution failed for task ':buildNativeBazel'报错的更多相关文章

  1. 【Android Studio使用教程6】Execution failed for task ':×××:compileReleaseAidl'

    使用Android Studio运行项目时候,经常会报一些错,比如 Execution failed for task ':×××:processReleaseResources' Execution ...

  2. 【Android】AndroidStudio打包apk出现的一些问题 `Error:Execution failed for task ':app:lintVitalRelease'.

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985, QQ986945193 公众号:程序员小冰 1,错误代码: `Error:Execution fai ...

  3. Android 解决Execution failed for task ':app:clean.'报错

    说实话,我还真是没见过比Execution failed for task ':app:clean.'更为恶心,更为不要脸的bug啦,代码没啥问题,一下子行让你爽爽,一下子又不鸟你啦,研究了下,终于找 ...

  4. 解决添加codova plugin 编译出现问题:Execution failed for task ':processDebugManifest'.

    问题背景: ionic3项目上,添加cordova-plugin-cszbar,编译运行在android平台上 ,结果编译不成功.出现以下问题. Element uses-feature#androi ...

  5. Android Studio2.1 Run APP:Error: Execution failed for task

    Android Studio2.1 Run APP时,遇到错误 Error: Execution failed for task ':app:clean'. Unable to delete file ...

  6. Android Studio 编译错误 Error:Execution failed for task ':app:buildInfoDebugLoader'.

    今天来到打开昨天的项目运行正常,然后改动了一点代码编译报错: Error:Execution failed for task ':app:buildInfoDebugLoader'. > Exc ...

  7. Android Studio编译开源项目(含NDK开发)常见报错

    1.未设置NDK的路径 Error:Execution failed for task ':library:ndkBuild'. > A problem occurred starting pr ...

  8. Android Studio 中 FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':compileDebugAidl'.的问题解答

    Android Studio 中 FAILURE: Build failed with an exception. * What went wrong: Execution failed for ta ...

  9. android排除报很多错方法 Execution failed for task ':app:compileDebugJavaWithJavac' in Android Studio

    android排除报很多错方法1.回撤对应layout的xml改动2.回撤对应java的改动3.重命名文件后导致的资源不对应 Execution failed for task ':app:compi ...

随机推荐

  1. 使用ssh免密登录

    在开发中经常会遇到远程登录服务器,要经常输入密码.有时密码太复杂记不住,还需要保存到本地文件中. 可以使用ssh命令,配置密钥登录,这样就不需要输入密码,一劳永逸,何乐而不为 ^--^ 配置密钥只需要 ...

  2. 如何在Linux系统下挂载光盘

    工具/原料 Linux 方法/步骤   找到光盘的完整路径名.在命令行输入:ls -l /dev | grep cdrom. 可以看到光盘的名字叫做:cdrom1.然后在命令行执行: mount /d ...

  3. 解决使用C/C++配置ODBC链接中文显示为问号(?)的问题

    使用VS2015中使用OBDC连接到数据库时,数据库可以正常显示,但是在VS上输出是乱码,如图: 在数据库中course表显示: vs程序结果显示: 查找原因,因为char默认读ascii型,只读到1 ...

  4. 1.Python

    一.Python基础:1.第一句python文件后缀名:文件后缀名是.py2.两种执行方式:(1)把文件地址交给python解释器,python解释器去找到这个文件读到内存执行(2)进入解释器:解释器 ...

  5. Python基础-socketserver

    ocketserver通讯模块实现并发操作,基于select.epoll.socket.多线程,实现的正真多线程多并发 socketserver通讯模块底层调用的socket模块,只是它作了处理基于l ...

  6. SELinux初探

  7. 【mysql】工具使用

    mysql之workbench如何只导出(insert语句)数据 MySQL 编码:utf8 与 utf8mb4,utf8mb4_unicode_ci 与 utf8mb4_general_ci htt ...

  8. JDBC执行SQL语句以及Date对象和字符串之间的相互转换(关键是那张标准表)

    只要能分隔数字就行,老外没有11月这个概念 以前看见被人这么写,你觉得可以写成yyYY这样吗,可以mm这样吗,可以mM这样吗,不要有这种想法 都是大神们都写好了,只需要参考手册,然后调用API就行了 ...

  9. linux删除某用户密码

    1.清空一个linux用户密码 # passwd -d user1 passwd: password expiry information changed. 2.指定key登录 ssh port111 ...

  10. 原生JS怎样给div添加链接

    html: <div href="http://www.atigege.com" target="_blank">个人网站</div> ...