记录开发中遇到的问题,不断更新
1.AVD模拟器启动卡在android界面:
原因:手动设置了internal storage大小。目前AVD的bug。
创建模拟器时internal storage不要修改,否则启动不了;即使启动的了,修改的容积也不会发生变化。
即看配置的时候已经变成例如1G,实际上启动起来到adroid系统中看还是默认的200m。
解决方案:创建模拟器时保持默认设置不要修改大小。
2.空间扩容:Android avd internal storage 不足
默认空间只有200m,实际可用的更少,装几个程序就不够用了。
解决方案:扩容
方法1:命令行方法
测试结果:不可用,据说是老版本安卓可用
使用命令行启动,将internal storage扩展到1G:
emulator -avd myemulatorname -partition-size 1024 &
方法2:未尝试
参见增加Android模拟器的内部存储(Internal Storage)
操作系统默认应该不带 e2fsprogs,Linux上可先用yum安装、MAC OS X可用port安装(或者其他你喜欢的方式);Windows上需要Cygwin安装。 做完以上扩容后,再重启模拟器,就会发现内部存储已扩大。
- #进入到avd目录下
- cd ~/.android/avd/Nexus5
- #格式化并重置userdata-qemu.img大小
- e2fsck -f userdata-qemu.img
- resize2fs userdata-qemu.img 2000M
3.AVD安装路径更改
解决方案:设置环境变量ANDROID_SDK_HOME
在计算机右击的属性,选择环境变量,然后为用户添加新的环境变量,变量名为 "ANDROID_SDK_HOME”,然后把变量值改为你想将".android”文件夹(AVD信息)所放置的位置
注销重新登录 重启emulator。
4.Genymotion 无法登陆、无法加载虚拟机类、或者无法下载。
错误提示:Unable to create virtual device. server returned HTTP status code 0
解决方案:被墙了,请用代理(自行百度一个)。
错误界面
填写代理:
5.adb not responding
启动Android studio的时候出现“adb not responding. you can wait more, or kill "adb.exe" process manually and click 'Restart' ”这个错误:
Android Studio 老提示adb问题,restart后任然无解,最后发现某手机助手软件占用端口...
解决步骤:
C:\Users\xxx>netstat -ano | findstr "5037"
TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 6040
TCP 127.0.0.1:5037 127.0.0.1:50352 ESTABLISHED 6848
TCP 127.0.0.1:5037 127.0.0.1:51077 TIME_WAIT 0
TCP 127.0.0.1:5037 127.0.0.1:51080 TIME_WAIT 0
TCP 127.0.0.1:5037 127.0.0.1:51082 TIME_WAIT 0C:\Users\xxx>tasklist
查找相应的PID为6040的进程,打开任务管理器干掉
6 关于 Gradle failed: already disposed module 的问题
Android studio 中删除或者移除原有的 module 后,一般会跳出来这样一个弹窗,要解决这个问题很简单,就是进入 File -- Invalidate Cache/Restart ,然后会自动清理和重启,这样就不会报错了。
7. android.useDeprecatedNdk=true 添入工程根目录下的新建 gradle.properties 文件
Error:(12, 0) Error: NDK integration is deprecated in the current plugin.
Consider trying the new experimental plugin.
For details, see http://tools.android.com/tech-docs/new-build-system/gradle-experimental.
Set "android.useDeprecatedNdk=true" in gradle.properties to continue using the current NDK integration.
解决如上问题只需如下两步:
1. 添加 gradle.properties 文件到工程的根目录下。
android.useDeprecatedNdk=true <wbr>添入工程根目录下的新建 <wbr>gradle.properties <wbr>文件中
2. 添加 android.useDeprecatedNdk=true 到该 gradle.properties 文件中。
gradle.properties 文件内容仅此如下一句:
android.useDeprecatedNdk=true
然后,重新编译你的工程。
参见:https://github.com/wzhnsc/TestNDKUpdataUI
8. is not an enclosing class
格式书写错误,在内部类中引用会出现的此错误。原因是内部类没有真正包括在外围类的大括号中。
9. android studio Gradle Build 中出现如下乱码
问题:文件中注释是乱码,IDE右下角改为GBK后显示正常。但编译后,Gradle Build 中出现如下乱码,且编辑器的中文注释有乱码。
原因:从eclipse中导入的,源文件是GBK,我的IDE默认是Utf-8。IDE中可改为按照GBK显示,但Gradle编译未正常读取。
解决思路:用SublimeText 或者 Notepad++ 或者 EidtPlus将所有文件另存为UTF-8 without DOM 格式
详细步骤查看此原文: android studio中文乱码各种情况的解决办法
其他参考:1. 解决 Android Studio 乱码问题
2. Android Studio Error—Gradle: 错误:编码 GBK 的不可映射字符的
3. Android Studio中编码(乱码)问题的解决方案
10. org.apache.http包不存在
问题:
原因:Android M 起默认移除了Apache HTTP:https://developer.android.com/intl/zh-cn/preview/behavior-changes.html
解决方法1:ADT不要添加那么高的版本,用21以下的,我用的19.0.0
android { compileSdkVersion 19 buildToolsVersion "23.0.1"
//其他。。。。 }
解决方法2:添加引用 android{ useLibrary 'org.apache.http.legacy' }
参考:
方法1: Android studio中“import org.apache.http.Header;”没用?
方法2:Android Studio 导入Eclipse项目遇到的错误总结
其他: Eclipse的java代码出错:The import org.apache cannot be resolved
11.transformClassesWithInstantRunForDebug
问题:问题10解决后发现报错
Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.
方法1:简单粗暴。取消InstantRun。但这样无法使用InstantRun特性了
参考:android studio遇到bosshelper:transformClassesWithInstantRunForDebug
方法2:据这里作者说是“引入的Libary与现有的工程中的某些Libs重复了”,推荐方法是 启用MultiDex mode
目测(未试)android5.0以上版本( API level 21)更改方便,然而由于问题10我已改成了level19
12 INSTALL_FAILED_NO_MATCHING_ABIS when install apk
问题11解决后,编译成功,安装过程出现此错误。
尚未解决。
解决思路:新建arm虚拟机。
INSTALL_FAILED_NO_MATCHING_ABIS 的解决办法
在Android模拟器上安装apk的时候出现 INSTALL_FAILED_NO_MATCHING_ABIS
这个错误提示的解决办法。
是由于使用了native libraries 。该native libraries 不支持当前的cpu的体系结构。
INSTALL_FAILED_NO_MATCHING_ABIS is when you are trying to install an app that has native libraries and it doesn't have a native library for your cpu architecture. For example if you compiled an app for armv7 and are trying to install it on an emulator that uses the Intel architecture instead it will not work.
参考:http://stackoverflow.com/questions/24572052/install-failed-no-matching-abis-when-install-apk
如果是使用Genymotion出现上面的提示,请参考以下链接:
13.ERROR: ANDROID_SDK_ROOT is undefined
由于问题12(疯了!都是连环错误,一个的解决方案里嵌套另一个)
问题截图:
解决:尚未有思路。另建了一个不含有google api的虚拟机成功了,怀疑与此有关。