安装 android-tools

mkdir ~/android && cd ~/android
 
wget https://dl.google.com/android/repository/tools_r25.2.3-linux.zip
unzip tools_r25.2.3-linux.zip

配置环境变量

echo 'export ANDROID_HOME=~/android' >> ~/.bashrc
echo 'export PATH=${ANDROID_HOME}/tools/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
 
git clone https://github.com/drakeet/TimeMachine.git
cd TimeMachine
./gradlew build
漫长的等待后错误如下:
 
FAILURE: Build failed with an exception.
 
* What went wrong:
A problem occurred configuring project ':timemachine'.
> You have not accepted the license agreements of the following SDK components:
  [Android SDK Build-Tools 25.0.2, Android SDK Platform 25].
  Before building your project, you need to accept the license agreements and complete the installation of the missing components using the Android Studio SDK Manager.
  Alternatively, to learn how to transfer the license agreements from one workstation to another, go to http://d.android.com/r/studio-ui/export-licenses.html
 
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
 
BUILD FAILED
 
Total time: 2 mins 40.822 secs
可以看出是因为缺少 [Android SDK Build-Tools 25.0.2, Android SDK Platform 25]
 
这时执行android list sdk --all 寻找匹配的序号
 
从上图可以看出匹配的是 3 
 
执行 android update sdk -u -a -t 3 询问时输入 "y" 并耐心等待
Installing Archives:
  Preparing to install archives
  Downloading Android SDK Build-tools, revision 25.0.2
  Installing Android SDK Build-tools, revision 25.0.2
    Installed Android SDK Build-tools, revision 25.0.299%)
  Done. 1 package installed.
可以看出安装成功,再次执行 ./gradlew build 尝试编译, 报错如下:
 
root@hostker:~/work/TimeMachine# ./gradlew build
Checking the license for package Android SDK Platform 25 in /root/android/licenses
Warning: License for package Android SDK Platform 25 not accepted.
 
FAILURE: Build failed with an exception.
 
* What went wrong:
A problem occurred configuring project ':timemachine'.
> You have not accepted the license agreements of the following SDK components:
  [Android SDK Platform 25].
  Before building your project, you need to accept the license agreements and complete the installation of the missing components using the Android Studio SDK Manager.
  Alternatively, to learn how to transfer the license agreements from one workstation to another, go to http://d.android.com/r/studio-ui/export-licenses.html
 
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
 
BUILD FAILED
 
Total time: 3.94 secs
可以看出是缺少 '[Android SDK Platform 25]',重复上次的过程
 
从上图可以看出匹配的是 33 
 
执行 android update sdk -u -a -t 33 询问时输入 "y" 并耐心等待
Installing Archives:
  Preparing to install archives
  Downloading SDK Platform Android 7.1.1, API 25, revision 3
  Installing SDK Platform Android 7.1.1, API 25, revision 3
    Installed SDK Platform Android 7.1.1, API 25, revision 396%)
  Done. 1 package installed.
可以看出安装成功,再次执行 ./gradlew build 尝试编译, 报错如下:
 
FAILURE: Build failed with an exception.
 
* What went wrong:
A problem occurred configuring project ':timemachine'.
> You have not accepted the license agreements of the following SDK components:
  [Android SDK Platform-Tools].
  Before building your project, you need to accept the license agreements and complete the installation of the missing components using the Android Studio SDK Manager.
  Alternatively, to learn how to transfer the license agreements from one workstation to another, go to http://d.android.com/r/studio-ui/export-licenses.html
 
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
 
BUILD FAILED
 
Total time: 4.913 secs
 
android update sdk -u -a -t 2
Installing Archives:
  Preparing to install archives
  Downloading Android SDK Platform-tools, revision 25.0.3
  Installing Android SDK Platform-tools, revision 25.0.3
  Stopping ADB server failed (code -1).
    Installed Android SDK Platform-tools, revision 25.0.397%)
    Stopping ADB server succeeded.
    Starting ADB server succeeded.
  Done. 1 package installed.
FAILURE: Build failed with an exception.
 
* What went wrong:
A problem occurred configuring project ':timemachine'.
> You have not accepted the license agreements of the following SDK components:
  [Android Support Repository].
  Before building your project, you need to accept the license agreements and complete the installation of the missing components using the Android Studio SDK Manager.
  Alternatively, to learn how to transfer the license agreements from one workstation to another, go to http://d.android.com/r/studio-ui/export-licenses.html
 
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
 
BUILD FAILED
 
android update sdk -u -a -t 160
Installing Archives:
  Preparing to install archives
  Downloading Android Support Repository, revision 43
  Installing Android Support Repository, revision 43
    Installed Android Support Repository, revision 4399%)
  Done. 1 package installed.
再次尝试编译 ./gradlew build
 
 
FAILURE: Build failed with an exception.
 
* What went wrong:
Gradle build daemon disappeared unexpectedly (it may have been killed or may have crashed)
 
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
额... 好像 gradle 进程被杀了,可能我内存太小了吧, 下次换个大点的再试 

在服务器上使用 gradle 打包 android 源码的更多相关文章

  1. 2014年最新720多套Android源码2.0GB免费一次性打包下载

    之前发过一个帖子,但是那个帖子有点问题我就重新发一个吧,下面的源码是我从今年3月份开始不断整理源码区和其他网站上的android源码,目前总共有720套左右,根据实现的功能被我分成了100多个类,总共 ...

  2. 【转】Ubuntu10.04上编译Android源码(Build Android source in Ubuntu10.04 Platform)

    原文网址:http://blog.csdn.net/chenyafei617/article/details/6570928 一.Introduction 今天我们就来谈谈如何在Ubuntu平台上面编 ...

  3. APK 的前世今生:从 Android 源码到 apk 的编译打包流程

    最近想要研究热修复的原理,并自己实现一套简单的热修复框架(音视频的坑刚挖好就又挖另一个坑了2333),已经在看书入门 c++,方便后续查看业内一些知名热修复框架的源码,另外在涉及编译期/运行时修改代码 ...

  4. Android源码浅析(三)——Android AOSP 5.1.1源码的同步sync和编译make,搭建Samba服务器进行更便捷的烧录刷机

    Android源码浅析(三)--Android AOSP 5.1.1源码的同步sync和编译make,搭建Samba服务器进行更便捷的烧录刷机 最近比较忙,而且又要维护自己的博客,视频和公众号,也就没 ...

  5. 从 Android 源码到 apk 的编译打包流程

    文中涉及到的工具所在目录:Android/sdk/build-tools.下面开始分解并逐步实现对源码的打包. 编译流程 1. 生成仅包含资源文件的 apk 包和 R.java 文件 根据资源文件和 ...

  6. 在Mac mini上编译Android源码

    参考文章 1.Android 6.0 源代码编译实践 2.编译Android源码致命错误解决方案 实践过程 1.Mac下安装Ubuntu双系统 (1)Ubuntu版本:Ubuntu 15.10 注:实 ...

  7. macOS(Sierra 10.12)上Android源码(AOSP)的下载、编译与导入到Android Studio

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

  8. 在ubuntu16.04上编译android源码【转】

    本文转载自:http://blog.csdn.net/fuchaosz/article/details/51487585 1 前言 经过3天奋战,终于在Ubuntu 16.04上把Android 6. ...

  9. Android源码的编译和下载【转】

    本文转载自:http://blog.csdn.net/banketree/article/details/9089827 网上介绍下载.编译Android方法一坨,读万卷书不如行万里路,以下是笔者亲身 ...

随机推荐

  1. Python 标准库 -> Pprint 模块 -> 用于打印 Python 数据结构

    使用 pprint 模块 pprint 模块( pretty printer ) 用于打印 Python 数据结构. 当你在命令行下打印特定数据结构时你会发现它很有用(输出格式比较整齐, 便于阅读). ...

  2. 问题:Server.MapPath;结果:Server.MapPath的命名空间

    习惯用Access的朋友都知道:ADO.NET链接Access数据库经常这么写:strcon="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=&q ...

  3. python中的变量以及字符串的使用

    在python中只有一个变量:动态变量 在Python当中令人奇怪的是我们的python没有静态变量,这个特性大大的增加了python的灵活性. 由于python中没有静态变量所以我们千万不要使用静态 ...

  4. findall查找 ^$*+?{ }{m,n}[].[.] \w \s \d \b \D \W

    #!/usr/bin/env python import re r = "aasa da.5a5dfgfda ada" ret = re.findall('a',r) print( ...

  5. 关于android写入SD卡数据的学习代码

    String path = "data/data/com.example.qqlogin/login.txt"; FileOutputStream fos = new FileOu ...

  6. 【总结整理】openlayer加载搜狗地图,qq地图,mapabc

    qq    http://www.cnblogs.com/gisvip/archive/2012/11/01/2750493.html mapabc    http://www.cnblogs.com ...

  7. Ros学习——C++发布器publisher和订阅器subscriber

    1.编写发布器 初始化 ROS 系统 在 ROS 网络内广播我们将要在 chatter 话题上发布 std_msgs/String 类型的消息 以每秒 10 次的频率在 chatter 上发布消息 在 ...

  8. php入门学习

    尤其不认可W3school之类的东西,不够深度,理解不深,比起这个更建议看官方文档,中文不清楚,看英文的. 入门视频:入门视频推荐:哈佛大学公开课:构建动态网站Beginner PHP and MyS ...

  9. 关于photoshop处理图片的自动化

    如果打印一个图片我们只需要点击几个按钮就可以完成了,但如果有100多个图片需要打印,那就需要点击几百次按钮,而且这个过程中有很多操作是相同的.能不能简化这个过程呢?是可以的,在photoshop中实现 ...

  10. 算法Sedgewick第四版-第1章基础-002一些工具类算法(Euclid’s algorithm)

    1. //Euclid’s algorithm public static int gcd(int p, int q) { if (q == 0) return p; int r = p % q; r ...