转载时请注明出处: 修雨轩陈

系统环境说明:

------------------------------------

操作系统 : ubunt 14.03 _ x86_64 操作系统

内存: 8GB

硬盘 500G

------------------------------------

一、编译TensorFlow在android上的Demo

1.1 搭建环境

l 下载tensorFlow

首先,选择一个目录用git命令下载tensorFlow 在github上的源码, 如下所示:

TensorFlow下载完毕之后,在tensorflow/tensorflow/examples/android/ 目录下面是android的示例。

l 搭建android环境

1. 搭建Java 环境

Ubunt 64下的java环境不再赘述,给出操作说明:

http://jingyan.baidu.com/article/5d368d1e12a1af3f60c0570a.html

PS 需要说明的是最好将JRE_HOME也设置出来。

2. 搭建SDK 环境

下载并解压SDK Tools:

此处给出SDK的下载地址:

http://www.androiddevtools.cn/

如果感觉android SDK版本不够高,可以通过下载android Studio 2.1,然后用android Srtudio中的下载工具下载。给出android Studio 下载地址:(不需要设置代理或镜像地址)

https://developer.android.com/studio/index.html

SDK下载之后,使用unzip 命令解压目录如下:

下载SDKTools之后,会得到这样的目录

查看android-sdk-linux目录:

其目录中有一下文件:

android-sdk-linux

|----add-ons : Google API

|----platforms : 用于存放android Level API .

|----platform-tools: 各版本SDK。根据API Level划分的SDK版本

|----tools : 各版本SDK通用工具。比如adb、和aapt、aidl、dx等文件

|----temp : 临时夹,一般在SDK更新安装时用到.

如图所示(PS 图中标红的目录是搭建android完整环境随后手动添加的,这些目录和文件随后也会用到)

接下来是安装Build_tools , 这个文件是android 开发所需的Build_Tools,下载并解压出整个文件夹赋值或者是移动到<你的SDK的目录>/build-tools 文件夹即可.

如果感觉麻烦, 可以通过安装Android Studio IDE , 并利用IDE自带的android pakage Manager

帮助下载.

3. 搭建NDK环境

NDK的话 ,我在一个中文地址上找到了, 在ubuntu中下载android-ndk-r11b-linux-x86_64.zip 即可.

http://www.androiddevtools.cn/

NDK的目录很全 , 自行解压即可 , 不需要添加任何文件.

l 安装Bazel

Bazel是一个构建工具,即一个可以运行编译和测试来组装软件的工具,跟Make、Ant、Gradle、Buck、Pants和Maven一样。这个工具将在以后编译的时候用到.

根据阅读ReadME可知:

https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/android

如何在Bazel .

1.2 编译Demo

首先修改tensorflow的根目录中的WORKSPACE

修改完毕之后 , 可以在目录先用bazel构建

1.3 运行

在编译成功之后 , 默认会在tensorflow/bazel-bin/tensorflow/examples/android 目录下面

生成我们想要的tensorFlow Demo

二、错误以及解决方法

bazel-out/host/bin/external/androidsdk/aapt_binary.runfiles/androidsdk/build-tools/23.0.1/aapt: erro

ERROR: /home/master/programes/android/tensorflow/tensorflow/examples/android/BUILD:47:1: Processing Android resources for //tensorflow/examples/android:tensorflow_demo failed: namespace-sandbox failed: error executing command /home/master/.cache/bazel/_bazel_master/65c2377a99cb38c469b4db23ae21783d/execroot/tensorflow/_bin/namespace-sandbox ... (remaining 28 argument(s) skipped).

解决方案 :

自习查看 log 可以知道:

error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or dir

于是猜测 : error的原因是:

1 在WORKSPACE中配置的时候有问题.

2 ubuntu自身的问题

于是知道了: 是ubuntu64 bit中缺少32位的部分类库 , 于是执行一下命令进行安装:

最后编译成功: 如图所示:

参考文献:

http://www.cnblogs.com/tao560532/p/4249084.html

http://stackoverflow.com/questions/16588969/android-hello-world-compile-error-intellij-cannot-find-aapt

https://developer.android.com/studio/releases/build-tools.html

http://stackoverflow.com/questions/17020298/android-sdks-build-tools-17-0-0-aapt-error-while-loading-shared-libraries-libz

http://blog.csdn.net/g457499940/article/details/38718549

http://forums.xamarin.com/discussion/20505/error-xa5205-cannot-find-aapt-exe-please-install-the-android-sdk-build-tools-package

http://blog.csdn.net/wei220000/article/details/50985609

TensorFlow 在android上的Demo(1)的更多相关文章

  1. android上部署tensorflow

    https://www.jianshu.com/p/ddeb0400452f 按照这个博客就可以 https://github.com/CrystalChen1017/TSFOnAndroid 这个博 ...

  2. 在android上跑 keras 或 tensorflow 模型

    https://groups.google.com/forum/#!topic/keras-users/Yob7mIDmTFs http://talc1.loria.fr/users/cerisara ...

  3. 通杀所有系统的硬件漏洞?聊一聊Drammer,Android上的RowHammer攻击

    通杀所有系统的硬件漏洞?聊一聊Drammer,Android上的RowHammer攻击 大家肯定知道前几天刚爆出来一个linux内核(Android也用的linux内核)的dirtycow漏洞.此洞可 ...

  4. [转]收集android上开源的酷炫的交互动画和视觉效果:Interactive-animation

    原文链接:http://www.open-open.com/lib/view/open1411443332703.html 描述:收集android上开源的酷炫的交互动画和视觉效果. 1.交互篇 2. ...

  5. Android学习小Demo(19)利用Loader来实时接收短信

    之前写过一篇文章<Android学习小Demo(13)Android中关于ContentObserver的使用>,在里面利用ContentOberver去监測短信URI内容的变化.我们先来 ...

  6. android JNI 简单demo(2)它JNI demo 写

    android JNI 简单demo(2)它JNI demo 写 一.搭建Cygwin 环境:http://blog.csdn.net/androidolblog/article/details/25 ...

  7. Android上的Badge,快速实现给应用添加角标

    应用角标是iOS的一个特色,原生Android并不支持.或许是因为当时iOS的通知栏比较鸡肋(当然现在已经改进了很多),而Android的通知栏功能强大?所以才出现了一方依赖于数字角标,一方坚持强大的 ...

  8. android上instant app介绍 类似于微信小程序

    android上instant app介绍 类似于微信小程序instant app 是谷歌推出的类似于微信小程序(或者说小程序类似于instant app)的一项技术,用户无须安装应用,用完就走,同时 ...

  9. Android组件化demo实现以及遇坑分享

    首先贴出demo的github地址:GitHub - TenzLiu/TenzModuleDemo: android组件化demo 作者:TenzLiu原文链接:https://www.jianshu ...

随机推荐

  1. Problems with MMM for mysql(译文)

    Problems with mmm for mysql posted in MySQL by shlomi 原文:http://code.openark.org/blog/mysql/problems ...

  2. VB 中 NumericUpDown 控件 如何为手动输入设定触发事件

    Private Sub numDuration_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) ...

  3. JavaScript中的闭包和匿名函数

    JavaScript中的匿名函数及函数的闭包   1.匿名函数 2.闭包 3.举例 4.注意 1.匿名函数 函数是JavaScript中最灵活的一种对象,这里只是讲解其匿名函数的用途.匿名函数:就是没 ...

  4. C# 集合已修改;可能无法执行枚举操作

    在winform 项目时遇到: 集合已修改;可能无法执行枚举操作的问题 错误原因:当用foreach遍历Collection时,如果对Collection有Add或者Remove或其他类似操作都会有这 ...

  5. 三分钟学会funsioncharts

    由于项目需求需要做一个报表,选择FusionCharts作为工具使用.由于以前没有接触过报表,网上也没有比较详细的fusionCharts教程,所以决定好好研究FusionCharts,同时做一个比较 ...

  6. android xml中的xliff属性

    <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff=" ...

  7. webapi mvc session一直获取不到问题

    前一段时间在给移动端写接口时遇到一个调用接口发送邮箱 session 一直获取不到的问题.我来给遇到问题的同志们说一说 自个在网上查了好多资料,问了一些朋友后.终于找到解决方案了. 大家都知道weba ...

  8. 嵌入式Linux > 简易安装思路,步骤记录

    思路就是把ipk文件通过ftp上传到linux上,然后通过opkg来安装. 很多的工具已经都能UI化这些操作了,命令行只是备用的工具, - 当所有工具都不好用或者遇到问题的时候,上命令行是最直接.快捷 ...

  9. 【jQuery】【转】jQuery中filter()和find()的区别

    Precondition: 现在有一个页面,里面HTML代码为: <div class="css"> <p class="rain">测 ...

  10. C#常用开源类库

    一.AOP框架        Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式.这种 ...