Android Studio 用久了,各种问题都遇到过。这里整理一些实际踩过的坑和解决方法。
多项目管理
Android Studio默认会在同一窗口打开新项目,同时开多个项目时很不方便。
设置多窗口模式:
File→Settings(Windows/Linux)或Android Studio→Preferences(Mac)Appearance & Behavior→System Settings- 勾选
Open project in new window - 点击
Apply
1 | File/Settings |
JDK配置
报错:
1 | Cannot find System Java Compiler. Ensure that you have installed a |
解决:
File→Project Structure- 左侧选
SDK Location JDK Location选本地JDK目录
常见JDK路径:
1 | C:\Program Files\Java\jdk1.8.0_xxx (Windows) |
Gradle配置
内存不足
报错:
1 | Android Studio error: Unable to start the daemon process |
解决:
修改 gradle.properties:
1 | org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 |
仓库配置
报错:
1 | Could not find com.android.tools.build:aapt2:3.3.2-5309881. |
解决:
项目级 build.gradle 里加 google():
1 | buildscript { |
CMake版本
报错:
1 | CMake '3.6.0' was not found in PATH or by cmake.dir property. |
解决:
模块级 build.gradle 指定版本:
1 | android { |
常见问题
AppCompat主题错误
报错:
1 | error: resource style/Theme.AppCompat.Light.DarkActionBar |
解决:
添加AppCompat依赖:
1 | dependencies { |
注意版本不能超过 compileSdkVersion:
| SDK版本 | AppCompat版本 |
|---|---|
| 28 | 28.x.x |
| 29 | 迁移到AndroidX |
9-patch图片错误
报错:
1 | Error: top-left corner pixel must be either opaque white or transparent |
原因: .9.png左上角1x1像素必须是纯色(白色或透明),这是Android识别9-patch的标记。
解决: 用Android Studio的9-patch编辑器重新编辑,确保左上角像素是纯色。
资源压缩错误
报错:
1 | Error: Resource shrinker cannot be used for libraries. |
解决: 如果是library模块,删除 build.gradle 里的 shrinkResources 配置。
NDK工具链问题
报错:
1 | No toolchains found in the NDK toolchains folder for ABI with prefix |
原因: NDK缺少mips64el工具链。
解决: 下载完整版NDK,把缺少的文件夹复制到 ndk-bundle/toolchains 目录。
JDK版本不兼容
报错:
1 | Unsupported major.minor version 51.0 |
版本对照:
| 版本号 | JDK版本 |
|---|---|
| 49.0 | Java 1.5 |
| 50.0 | Java 1.6 |
| 51.0 | Java 1.7 |
| 52.0 | Java 1.8 |
解决: 把项目JDK改成JDK 7或更高。
导入本地依赖工程
- 把依赖工程拷到工程根目录
- 项目级
settings.gradle添加:1
include ':项目名字'
- app模块
build.gradle添加:1
2
3dependencies {
compile project(':项目名字')
}
如果第三方工程没有 build.gradle,需要创建一个:
1 | apply plugin: 'com.android.library' |
网络请求错误处理
问题: getInputStream() 抛 FileNotFoundException
正确处理:
1 | InputStream is = null; |
应用生命周期
完全退出
1 | public static void exitApp(Context context){ |
重启应用
1 | public static void restartApp(){ |
调试技巧
连接夜神模拟器
- 启动Android Studio
- 启动夜神模拟器
- CMD执行:
1
"D:\Program Files\Nox\bin\nox_adb.exe" connect 127.0.0.1:62001
- Android Studio点击Run(或Shift+F10)
按Shift+F10可查看设备连接情况。
断点问题
问题: “当前不会命中断点。源代码与原始版本不同”
解决:
- 复制文件内容
- 删除文件
- 编译(会报错)
- 新建同名文件
- 粘贴内容
- 重新编译
SQLite使用
Android Studio里通过 SQLiteDatabase 操作数据库,主要步骤:
- 创建类继承
SQLiteOpenHelper - 实现
onCreate()和onUpgrade() - 用
getWritableDatabase()获取实例 - 执行增删改查
以上就是Android Studio开发中常见的一些问题和解决方法,主要是实际踩坑的记录。