简体   繁体   English

ansible android update sdk给出找不到sdkmanager.jar

[英]ansible android update sdk giving can't find sdkmanager.jar

System Config: Ubuntu 14.04 ansible 1.9.3 系统配置:Ubuntu 14.04 ansible 1.9.3

below is the main.yml file 下面是main.yml文件

--- 
- 
 hosts: 127.0.0.1
 connection: local
 sudo: yes
 tasks: 
- 
  name: "Install packages to install android sdk"
  with_items: 
    - libgl1-mesa-dev:i386
  apt: "name={{ item }} state=installed"
  sudo: yes
- 
  name: "Install Java"
  with_items: 
    - default-jre
    - default-jdk
    - openjdk-7-jre
    - openjdk-7-jdk
  apt: "name={{ item }} state=installed"
  sudo: yes
- 
  name: "Download sdk tools"
  get_url: url=http://dl.google.com/android/android-sdk_r24.3.4-linux.tgz dest=/opt/android-sdk_r24.3.4-linux
  register: sdk_file
- 
  name: "Unarchiving sdk tools"
  command: tar xzf {{sdk_file.dest}}
  sudo: yes
  args:
    chdir: /opt 
    creates: /opt/android-sdk-linux
- 
  name: "write permissions to android home"
  file: path=/opt/android-sdk-linux state=directory recurse=yes mode=0777
- 
  name: "write permission to sdkmanager.jar"
  file: path=/opt/android-sdk-linux/tools/lib/sdkmanager.jar mode=0777
- 
  name: add android to path
  lineinfile: >
   dest=/etc/environment
   state=present
   backrefs=yes
   regexp='PATH=(["]*)((?!.*?/opt/android-sdk-linux/tools).*?)(["]*)$'
   line="PATH=\1\2:/opt/android-sdk-linux/tools\3"
- 
  name: "Install Android SDKs"
  shell: "android update sdk -u -a -t {{ item }}"
  with_items: 
    - "tools"
    - "platform-tools"
    - "build-tools-23.0.1"
    - "build-tools-22.0.1"
    - "android-23"
    - "android-22"
    - "android-21"
    - "extra"
  args: 
    executable: "/bin/bash"
  environment: 
     PATH: /opt/android-sdk-linux/tools/:$PATH

android is accessible from PATH. 可以从PATH访问android。 also to see i exported /opt/android-sdk-linux/tools into my PATH from the bash and i am able to run android update commands, also i also set chmod 777 permissions to /opt/android-sdk-linux recursively but somehow ansible is not able to access it. 还看到我从bash导出/ opt / android-sdk-linux / tools进入我的PATH并且我能够运行android更新命令,同时我还以递归方式将chmod 777权限设置为/ opt / android-sdk-linux但不知何故ansible无法访问它。

I had a look at this question but this didn't help. 我看了一下这个问题,但这没有用。

As I see, you are trying to use the android executable at /opt/android-sdk-linux/tools/ . 正如我所见,你正试图在/ opt / android-sdk-linux / tools /中使用android可执行文件。 Try using this, dropping the need of PATH 尝试使用它,不再需要PATH

  name: "Install Android SDKs"
  shell: "/opt/android-sdk-linux/tools/android update sdk -u -a -t {{ item }}"
  with_items: 
    - "tools"
    - "platform-tools"
    - "build-tools-23.0.1"
    - "build-tools-22.0.1"
    - "android-23"
    - "android-22"
    - "android-21"
    - "extra"
  args: 
    executable: "/bin/bash"

Also I suggest using, the following as shell command to accept all the licenses. 另外我建议使用以下作为shell命令来接受所有许可证。

  shell: "echo \"y\" | /opt/android-sdk-linux/tools/android update sdk -u -a -t {{ item }}"

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM