本文会持续更新,欢迎各位私信指正~~
安卓官网:https://developer.android.google.cn/studio
国内推荐:https://www.androiddevtools.cn/
120.253.255.97 dl.google.com # 写入hosts文件末尾
系统 | host文件路径 |
---|---|
windows | C:\Windows\System32\drives\etc\hosts |
linux | /etc/hosts |
Mac | /etc/hosts |
Android | /system/etc/hosts |
iPhone | /etc/hosts |
说明:Linux、Mac 使用 Root 权限;iPhone、iPad 须越狱、Android 必须要 root。Windows:在 CMD 窗口输入ipconfig /flushdns刷新生效。Linux 命令:sudo nscd restart刷新生效。
此外,使用这种方式可以用于github。
20.205.243.166 github.com
185.199.109.153 github.io
名称 | 地址 |
---|---|
中国科学技术大学 | http://mirrors.ustc.edu.cn/ |
阿里 | https://mirrors.aliyun.com/android.googlesource.com/ |
腾讯 | https://mirrors.cloud.tencent.com/AndroidSDK/ |
清华大学 | https://mirrors.tuna.tsinghua.edu.cn/ |
搜狐 | http://mirrors.sohu.com/ |
网易 | http://mirrors.163.com/ |
北京交通大学 | http://mirror.bjtu.edu.cn |
兰州大学 | http://mirror.lzu.edu.cn/ |
上海交通大学 | http://ftp.sjtu.edu.cn/ |
东北大学 | http://mirror.neu.edu.cn/ |
东软信息学院 | http://mirrors.neusoft.edu.cn/ |
重庆大学 | http://mirrors.cqu.edu.cn/ |
有时候为了方便修改了默认设置,但某些场景下有需要多开IDE,记录一下设置过程:
File > Settings > Appearance & Behavior > System Settings
在设置页面中,Reopen projects on startup根据需要选择多开方式。
package:mine
根因:一般是Gradle的问题。请检查gradle-wrapper.properties中的distributionUrl
指定版本的Gradle有没有下载完成,找到正在使用的Gradle的安装路径:distributionBase指定的路径\wrapper\dists\gradle-x.x.x-x\dmo…k0deb\,检查此目录下有没有gradle-x.x.x-x.zip文件和它的大小是否正常。
解决方法:手动下载Gradle包,放在Gradle的安装路径下即可,不用解压。
切换到Terminal页面,在终端窗口执行gradlew compileDebug --stacktrace
,或者gradle compileDebug --stacktrace
升级了Android Studio和Gradle后,运行的时候会出现警告.
1、将项目中的目录添加进来。在app/build.gradle文件下增加sourceSets节点。
2、将编译时需要的.jar/.aar文件添加到依赖项中。
android {
...
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
}
dependencies {
implementation fileTree(include: ['*.?ar'], dir: 'libs')
implementation files('libs/XXX.aar')
...
}
ssh variant ‘simple’ does not support setting port
在ubuntu上git工具升级到2.42.0后出现报错不能拉代码。原因是git 2.16.x 以上的版本上 ssh variant 需要手动设置为 ssh。解决方法:
git config --global ssh.variant ssh
方法1:在资源文件的根标签下添加属性tools:ignore="MissingTranslation
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
方法2:子标签属性添加属性translatable="false"
<string name="name" translatable="false">Androidstring>
老项目用较新的IDE打开后,出现cvc-complex-type.2.4.a:发现了以元素’base-extension’开头的无效内容。应以’layoutlib’之一开头。
打开File>Project Structure>Project修改配置,参考下面的Gradle和Gradle Plugin版本对照表。
Gradle Version:5.4.1 +
Android Plugin Version:3.5.2 +
原因:SDK中缺少必需的基本的核心的开发工具包30.0.2
工具包路径:在1处指定的路径下AndroidSdk目录中的\build-tools下,有各个API平台的对应的工具包。
解决办法:重新安装工具包
具体操作:在Android SDK的SDK Tools中,勾选Show Package Details展开显示所有子选项,先取消勾选有问题的工具包,点击Apply按钮后开始卸载有问题工具包;等Finish后在勾选这个工具包,点击Apply开始安装此包。
Android SDK Tools是一种开发工具集,主要用于Android平台上的应用程序开发。它提供了许多有用的工具,包括模拟器、调试器、编译器、库、打包工具等等,但这些不是固定的,它们会随着谷歌的修改变化位置,比如说模拟器已经从工具包中迁移到外面,adb迁移到platform-tools目录中。
方案1:Build -> Clean Project,Build -> Make Project
方案2:Build -> Clean Project,Build -> Rebuild Project
方案3:动删除所有module自动生成的build文件夹
Errror: Unable to find CMake with version:3.10.2 within folder:[…
解决办法:重新安装CMake工具包或者手动下载安装。
CMake官网下载地址:https://cmake.org/download/
有两种选择:源码版本和二进制版本,这里根据项目选择下载历史版本3.10.2(下载地址:https://cmake.org/files/)
使用cmake工具且选用Ninja作为编译工具编译时报错,找不到Ninja的程序
Ninja官网:https://ninja-build.org/
官网出问题或者无法下载时,可以使用源码编译后安装。
项目构建时报错:Using insecure protocols with repositories, without explicit opt-in, is unsupported. Switch Maven repository ‘maven(XXX)’ to redirect to a secure protocol (like HTTPS) or allow insecure protocols.
原因:不兼容https请求协议,无法链接到服务器。
maven {
allowInsecureProtocol true //添加这一行时注意格式或者将url中的http修改为https
url 'http://xxx'
}
No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android
下载ndk后找到缺失的添加:【新版本】https://developer.android.google.cn/ndk/downloads/
【旧版本】https://developer.android.google.cn/ndk/downloads/older_releases
https://github.com/android/ndk/wiki/Unsupported-Downloads
这里需要逐个下载找很麻烦,如果条件允许,推荐删除NDK后重新下载比较方便。
排查原因:首先检查项目根目录下的build.gradle文件中repositories中maven的格式和值设置是否正确,有没有不正常的文字出现。然后再检查Gradle版本和AGP的版本是不是对应,参考Gradle和Gradle Plugin版本对照表。
这种非项目代码的报错,很可能是gradle版本和JDK版本不一致导致的,如果使用的是openJDK8,也有可能会遇到问题,可以结合后面的AGP的版本一起调试。
项目使用gradle为编译工具,gradel和jdk版本对应关系如下:https://docs.gradle.org/8.3/userguide/compatibility.html
Java version | Support for compiling/testing/… | Support for running Gradle |
---|---|---|
8 | N/A | 2.0 |
9 | N/A | 4.3 |
10 | N/A | 4.7 |
11 | N/A | 5.0 |
12 | N/A | 5.4 |
13 | N/A | 6.0 |
14 | N/A | 6.3 |
15 | 6.7 | 6.7 |
16 | 7.0 | 7.0 |
17 | 7.3 | 7.3 |
18 | 7.5 | 7.5 |
19 | 7.6 | 7.6 |
20 | 8.1 | 8.3 |
官网Android Gradle 插件版本说明:
https://developer.android.google.cn/studio/releases/gradle-plugin?hl=zh-cn
用法:根据项目的AGP版本,Gradle版本应选择不低于最低版本的版本。比如项目build.gradle版本是7.1.2,那Gradle的版本不能低于7.2。
插件版本 | 所需的最低 Gradle 版本 |
---|---|
8.1 | 8.0 |
8.0 | 8.0 |
7.4 | 7.5 |
7.3 | 7.4 |
7.2 | 7.3.3 |
7.1 | 7.2 |
7.0 | 7.0 |
4.2.0+ | 6.7.1 |
3.5.0 | 5.4.1+ |
3.4.0 - 3.4.1 | 5.1.1+ |
3.3.0 - 3.3.2 | 4.10.1+ |
3.2.0 - 3.2.1 | 4.6+ |
3.0.0+ | 4.1+ |
2.3.0+ | 3.3+ |
2.1.3 - 2.2.3 | 2.14.1+ |
2.0.0 - 2.1.2 | 2.10 - 2.13 |
2.0.0 - 2.1.2 | 2.10 - 2.13 |
1.5.0 | 2.2.1 - 2.13 |
1.2.0 - 1.3.1 | 2.2.1 - 2.9 |
1.0.0 - 1.1.3 | 2.2.1 - 2.3 |
> adb shell getprop ro.hw.country //查询hw手机发货地址
> adb shell getprop ro.build.version.emui //查询hw手机EMUI版本
> adb shell getprop ro.product.cpu.abi //查询芯片是32位还是64位
> adb shell getprop ro.product.manufacturer //查询设备制造商
> adb shell getprop ro.product.brand //查询手机品牌
> adb shell getprop ro.product.model //查询手机内部代号
> adb shell getprop ro.product.name //查询设备名称
> adb shell getprop ro.serialno //查询设备序列号
> adb shell getprop ro.build.version.release //查询手机Android系统版本
> adb shell am monitor //获取包名:先执行此命令后启动APP
> adb shell dumpsys window | findstr mCurrentFocus //获取包名:先启动APP后执行此命令
> adb shell pm list package -3 //获取所有已安装的第三方应用包名
> aapt dump badging apk本机路径 //获取计算机本机(未安装)存储的APK包名
> aapt dump xmltree apk本机路径 AndroidManifest.xml | findstr “package” //获取计算机本机(未安装)存储的APK包名
> adb kill-server/adb start-server //设备未连接可尝试重启adb服务
> adb -s 设备名 install apk本机路径 //计算机连接多个设备,安装应用到指定的设备
adb devices
// 检查USB连接,查询设备名adb tcpip 5588
//开启默认设备的adb无线模式服务adb -s 设备名 tcpip 5588
//开启指定设备的无线模式,这里可以开启多个设备。adb shell ifconfig | findstr "inet addr"
//linux上将findstr
换成grep
。adb connect 192.168.0.7:5588
adb disconnect 192.168.0.7:5588
//或者用adb usb命令断开,或者重启手机 adb usb
// restarts the adbd daemon listening on USB adb tcpip 端口号
//restarts the adbd daemon listening on TCP on the specified port