jinhucheung / blog

学习笔记
6 stars 3 forks source link

Linux 学习之Android环境搭建 #11

Open jinhucheung opened 8 years ago

jinhucheung commented 8 years ago

Index

jinhucheung commented 8 years ago

0. 前言

想深入学习Android的底层知识,于是在Linux上搭建起Android开发环境,便于日后学习工作.我的搭建环境是Ubuntu14.04

jinhucheung commented 8 years ago

1. 安装JDK

安装JDK的步骤请查看Linux 学习之安装JDK.安装好的朋友直接跳过:)

jinhucheung commented 8 years ago

2. 安装Android Stuido

  1. 下载Android Studio 点击进入下载页面

  2. 解压安装包

unzip  android-studio-ide-143.2915827-linux.zip

(注意斜体部分为你下载的Android Studio压缩包名)

  1. 进入android-studio/bin,执行Android Studio
./studio.sh
  1. 安装Android SDK
    • 在线安装
      启动Android Stuido,其第一次启动时会要求安装SDK。(如果没挂代理,可能会卡在下载gradle的步骤)
    • 离线安装
      请点击进入下载页面
jinhucheung commented 8 years ago

3. 一些问题

3.1 AS一直停在构建项目的状态

特征: 一直处于Gradle Build Running的状态。(不是慢,我遇到的情况是卡死。你问我为什么知道,我让机器运行了一晚上TT,起来还是看到Gradle Build Running)


解决:

  1. 查看Gradle Console是否出现异常
    我碰到的是以下异常,这是我AS一直Build Running的原因
Exception in thread "png-cruncher_17" java.lang.RuntimeException: Timed out while waiting for slave aapt process, make sure the aapt execute at /usr/local/share/android-sdk-linux/build-tools/24.0.1/aapt can run successfully (some anti-virus may block it) or try setting environment variable SLAVE_AAPT_TIMEOUT to a value bigger than 5 seconds
    at com.android.builder.png.AaptProcess.waitForReady(AaptProcess.java:108)
    at com.android.builder.png.QueuedCruncher$1.creation(QueuedCruncher.java:110)
    at com.android.builder.tasks.WorkQueue.run(WorkQueue.java:203)
    at java.lang.Thread.run(Thread.java:745)

网上解决方法先尝试更新32位库文件apt-get install libncurses5:i386 libstdc++6:i386 zlib1g:i386 如果不行,请卸装SDK的build-tools,并安装低版本的build-tools(这是我遇到问题的解决方案,原本是build-tools/24,卸装后重新安装了build-tools/23) 问题描述及解决链接:https://code.google.com/p/android/issues/detail?id=188627

  1. gradle需要更新某些文件 打开项目目录Gradle Scripts下找到gradle-wrapper.properties
#Thu Apr 28 12:36:03 CST 2016
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip

将最后一行网址部分即 http://services.gradle.org/distributions/gradle-2.10-all.zip 输入浏览器手动进行下载。 然后打开Android Studio 设置use default gradle wrapper 此时可能提示找不到指定的目录或文件 提示则创建对应的目录,然后将下载的zip文件移动到对应的目录下。(注意该目录是在图1的Service directory path下的)

mv /home/perrin/Desktop/gradle-2.10-all.zip  /home/perrin/.gradle/wrapper/dists/gradle-2.10-all/a4w5fzrkeut1ox71xslb49gst/

然后更改目录的权限为所有用户可读可写。

chmod a+w /home/perrin/.gradle/ -R

如果没有其他问题,此时就可以顺利通过gradle build了。

详细的问题描述及解决链接:http://blog.csdn.net/junbujianwpl/article/details/51587977

jinhucheung commented 8 years ago

3.2 真机调试

Ubuntu下真机调试的方法

  1. 首先查看手机连接的usb端口信息
root@kumho-Inspiron-3421:~# lsusb
Bus 004 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 005: ID 064e:812c Suyin Corp. 
Bus 003 Device 006: ID 0cf3:0036 Atheros Communications, Inc. 
Bus 003 Device 003: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Bus 003 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 001 Device 002: ID 2a45:0c02 Meizu Corp. MX Phone (MTP & ADB)
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

这里可以清楚看到我手机的usb端口信息是Bus 001 Device 002: ID 2a45:0c02 Meizu Corp. MX Phone (MTP & ADB),记下端口的ID:2a45 如果不清楚你手机的端口信息,请拔掉手机usb线,对比缺少的信息.

  1. 在超级用户下打开root目录
root@kumho-Inspiron-3421:~# sudo nautilus

Ctrl+H查看隐藏文件

  1. 查看是否存在目录.android(不存在则创建) 在超级用户的root目录上创建文件".android/adb_usb.ini",此文件一定要创建,不然根本列不出设备.
    注意:一定要在root用户上新建.虽然当前用户运行adb,可以连接上设备,但android studio是看root用户有没连接上的

在adb_usb.ini写入数据

0x2a45

2a45是你设备Usb端口ID

  1. 进入Android SDK下的platform-tools目录运行adb devices 查看是否有设备信息
root@kumho-Inspiron-3421:~# cd /root/Android/Sdk/platform-tools
root@kumho-Inspiron-3421:~/Android/Sdk/platform-tools# sudo ./adb devices
List of devices attached
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
88MFBMA2VP5D    device

如果没有请先运行sudo ./adb kill-server 这些操作都是在超级用户上运行 注意执行adb操作时,可能会出现错误,如:

Unable to detect adb version, adb output: /home/hamid/Android/Sdk/platform-tools/adb: 1: /home/hamid/Android/Sdk/platform-tools/adb: Syntax error: ")"

解决方法:重新下载覆盖platform-tools

  1. 下载platform-tools:点击此下载
  2. 进入Android SDK文件夹
  3. 删除旧的platform-tools文件夹
  4. 添加下载好的platform-tools
    问题详细说明

5.运行Android Stuido 同样的,在超级用户上运行Android Stuido,点击run查看是否有设备信息出现

jinhucheung commented 8 years ago

3.3 Android Studio不能输入中文

  1. 先确保键盘输入方式是fcitx
系统设置->语言支持->设置键盘输入方式->fcitx
  1. 修改studio.sh 在studio.sh里函数外添加
#Solve the problem can not enter the Chinese
export XMODIFIERS="@im=fcitx"
export GTK_IM_MODULE="fcitx"
export QT_IM_MODULE="fcitx"
#
jinhucheung commented 8 years ago

3.4 Android Studio添加注释模板

在Android Stuido中添加注释模板的方法

  1. 打开Live Templates设置面板
File->Setting->Editor->Live Templates
  1. 添加自定义模板组 点击面板右边的+,添加Templates Group,输入模板组名称(这里我输入的是"Custom"),如下图 注:"cma"是我之前生成的注释模板

  2. 配置注释模板

  3. 选中自定义模板组, 点击面板右边的+,添加Live Templates,输入模板名称

  4. 配置模板:

    • Abbreviation:输入模板名(这里入的是"cmc",给类信息生成注释模板),注意模板名也就是我们在代码需输入模板名后才能生成模板,不建议太长.
    • Description:描述信息.
    • Template text:模板,这里我们输入模板文本,变量用$变量名$表示.
    • Define:起作用的环境,这里选择java->declaration
    • Expand with:展开模板键,这里我选择[Enter]
      如下配置完模板信息
  5. 配置变量信息 点击Edit variables,弹出变量设置面板如下,并做相应设置

  6. 使用模板信息 在java代码中,输入模板名再按[Enter]就会生成注释模板(这里我是输入"cmc"+[Enter]),生成如下图的模板信息.