Android Studio 问题集

找不到adb

Android启动的时候提示没有adb,adb已经安装在了Android Studio里面,我们只需要找到安装目录并且添加到环境变量即可。
安装目录大致在这个位置:
C:\Users\xxx\AppData\Local\Android\Sdk\platform-tools
将此路径添加到系统环境变量,重启Android Studio即可。
添加到系统环境变量:
此电脑 -> 属性 -> 高级系统设置 -> “高级”选项卡 -> 环境变量 -> 系统变量 -> PATH
添加上述路径

adb 无法连接

adb :cannot connect to daemon at tcp:5037
adb默认使用系统的5037端口,如果无法连接,我们可以尝试如下:

  1. 关闭 Android Studio
  2. 在命令行工具中执行 adb kill-server
  3. 执行adb start-server
    如果还是出错,应该是端口被占用,尝试找出来端口占用的进程:
    netstat -aon | findstr "5037"
  TCP    127.0.0.1:5037         0.0.0.0:0              LISTENING       4584
  TCP    127.0.0.1:5037         127.0.0.1:53298        ESTABLISHED     4584
  TCP    127.0.0.1:5037         127.0.0.1:53476        ESTABLISHED     4584
  TCP    127.0.0.1:5037         127.0.0.1:55393        ESTABLISHED     4584
  TCP    127.0.0.1:53298        127.0.0.1:5037         ESTABLISHED     17344
  TCP    127.0.0.1:53476        127.0.0.1:5037         ESTABLISHED     18536
  TCP    127.0.0.1:55393        127.0.0.1:5037         ESTABLISHED     3564

可以看到LISTENING的进程号是 4584
找到该进程名:
tasklist | findstr 4584

svchost.exe                   4584 Services                   0     14,516 K

可以看到是系统进程svchost.exe占用
这里是系统进程占用,不建议kill,我们可以更换一个端口,不使用默认的端口。
Android 使用 ANDROID_SERVER_PORT环境变量表示默认端口,将此变量显示加入到系统环境中,并选择一个合适的值(要避免与知名端口冲突)

此电脑 -> 属性 -> 高级系统设置 -> “高级”选项卡 -> 环境变量 -> 系统变量 -> 新建
变量名(N): 填写为ANDROID_SERVER_PORT
变量值(V): 填写为你要设置的值

重启cmd
执行

adb start-server
* daemon not running; starting now at tcp:5038
* daemon started successfully

程序不支持模拟器CPU类型

我们创建模拟器的时候,Android Studio会要去你选择一个 System Image,它会给出一个推荐版本,很可能会推荐一个x86架构的系统镜像。
我测试了一下两个相同的模拟器配置,只是一个 System Image选择了推荐的x86,另一个选择了armeabi-v7。创建arm版本的时候提示说选择x86会比选择arm快十倍,而实际上的验证结果还真的是快了不止10倍,x86版本的模拟器很快就启动完成,arm版本的模拟器慢慢悠悠很长时间才启动完毕,启动后直接报ANR。
然而,当我运行Android Studio上的项目到模拟器上的时候,选择x86的模拟器会报错

Device support x86,but APK only supports armeabi-v7a

这个道理我懂,但是怎么修改让Android Studio编译出来的版本支持x86呢?
这其实是一个可配置项,打开项目的build.gradle文件(在Gradle Scripts中),找到

android {
  ndk{
      abiFilters 'armeabi-v7a'
  }
}

将"x86_64"加入到abiFilters选项中

android {
  ndk{
      abiFilters 'armeabi-v7a' 
      abiFilters 'x86_64'
  }
}

你可能感兴趣的:(Android Studio 问题集)