守望者--AIR技术交流

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: ANE FlasCC 炼金术
查看: 2105|回复: 0

[Android] [Android问答] 开发环境问题集锦

[复制链接]
  • TA的每日心情
    擦汗
    2018-4-10 15:18
  • 签到天数: 447 天

    [LV.9]以坛为家II

    1742

    主题

    2094

    帖子

    13万

    积分

    超级版主

    Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18

    威望
    562
    贡献
    29
    金币
    52620
    钢镚
    1422

    开源英雄守望者

    发表于 2015-8-6 09:58:52 | 显示全部楼层 |阅读模式

    工欲善其事,必先利其器。

    和iOS开发相比,Android的开发环境的版本比较多,随之而来的问题也多。显然,我们不应该浪费宝贵的时间在解决开发环境带来的问题上,为此本文总结了常见的开发环境问题和解决方法,供大家查询和随时补充。

    Debug certificate expired

    Android SDK生成的用于调试的证书文件debug.keystore有效期是365天,当使用超过一年后控制台就会报这个错误。

    Error generating final archive: Debug Certificate expired on 10/09/18 16:30

    解决方法是手工删除debug.keystore文件,Windows系统下位于"C:\Documents and Settings\username\.android"目录,Linux和Mac系统下位于"~/.android/"目录。下次启动应用时,Eclipse会自动新建一个debug.keystore文件。最好"Project->Clean"一下项目以便触发编译器重新编译。

    Failed to install apk on device: timeout

    导致这个问题的确切原因不清楚,可能是由于不正确关闭adb连接。

    Failed to install helloworld.apk on device 'emulator-5554': timeout

    解决方法1:更换电脑usb口(不使用前置usb口)或重装手机驱动,将手机关机后再开机。

    解决方法2:在Eclipse里选择"Window->Preferences->Android->DDMS->ADB connection time out",将缺省的5000ms改为更大的值,例如20000ms。

    解决方法3:在命令行窗口里依次输入如下命令:

    adb kill-server
    adb start-server

    invalid command-line parameter

    这是由于Eclipse开发环境无法找到所需的可执行文件造成的。

    [2011-07-10 07:10:22 - demo] Android Launch!
    [2011-07-10 07:10:24 - demo] adb is running normally.
    [2011-07-10 07:10:24 - demo] Performing com.demo.DemoActivity activity launch
    [2011-07-10 07:10:25 - demo] Automatic Target Mode: launching new emulator with compatible AVD 'xxx'
    [2011-07-10 07:10:25 - demo] Launching a new emulator with Virtual Device 'xxx'
    [2011-07-10 07:11:06 - Emulator] invalid command-line parameter: Files\Android\android-sdk\tools/emulator-arm.exe.

    解决方法是在Eclipse里选择"Window->Preferences->Android"选项,检查"SDK Location"的路径是否包含了空格,如果是"c:\Program Files\android"这种,改为"c:\Progra~1\android",这样命令行就可以正常调用到了。

    小提示:在命令行窗口里输入"dir /x"命令就可以列出8.3格式的文件名,看下面的结果:

    2012-09-25  23:52    <DIR>          WATCHD~1     WatchData
    2012-09-01  11:01    <DIR>                       Winamp
    2012-07-24  22:22    <DIR>          WINDOW~4     Windows Live
    2012-07-24  22:21    <DIR>          WI3957~1     Windows Live SkyDrive

    INSTALL_FAILED_INSUFFICIENT_STORAGE

    安装应用程序时遇到存储容量不足时会报这个错误:

    Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE
    Please check logcat output for more details.
    Launch canceled!

    如果是在模拟器上运行应用,可以扩大AVD的内存容量。

    如果是在真机上运行,可以在AndroidManifest.xml里修改安装偏好,让应用直接安装到SD卡上解决。

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example"
        android:installLocation="preferExternal" >
    ...
    </manifest>

    Unable to open sync connection

    虽然很多人遇到这个问题,但问题的根源并不确切,可能有多种原因造成adb报这个错误:

    [2010-10-12 09:36:48 - myapp] Android Launch!
    [2010-10-12 09:36:48 - myapp] adb is running normally.
    [2010-10-12 09:36:48 - myapp] Performing com.mycompany.myapp.MyActivity activity launch
    [2010-10-12 09:36:48 - myapp] Automatic Target Mode: using device 'xxx'
    [2010-10-12 09:36:48 - myapp] Uploading myapp.apk onto device 'xxx'
    [2010-10-12 09:36:48 - myapp] Failed to upload myapp.apk on device 'xxx'
    [2010-10-12 09:36:48 - myapp] java.io.IOException: Unable to open sync connection!
    [2010-10-12 09:36:48 - myapp] Launch canceled!

    解决方法1:拔掉手机连接线再重新连上;

    解决方法2:在手机上关闭Debug选项再重新打开,这个选项在手机的"设置->应用程序->开发->USB调试"里。

    Too many open files

    这个问题与系统可同时打开文件数量设置有关,但一般不需要修改相关设置,用上一个问题(Unable to open sync connection)的方法即可解决。

    第三方Jar包,NoClassDefFoundError

    升级ADT版本以后容易出现这个问题:本来一切正常的Android项目,升级以后所有的第三方Jar包里的类都提示NoClassDefFoundError了。

    原因可能出现在不同版本ADT使用的编译ant脚本的区别,可能的解决方法有两个:

    方法1:在Eclipse里右键点击你的Android工程,选择"Properties->Java Build Path->Order and Export",在这里把所有第三方Jar包前面的复选框都勾上。

    方法2:检查你的第三方Jar包文件是否放在工程目录下的"libs"目录,如果不是,改过来。

    Failed to allocate memory: 8

    一般是AVD的设置有问题,很可能是RAM值设得太高,降低些试试。早期adt版本里有个bug,就是RAM值里必须包含"MB",例如是"512MB"而不是"512",否则提示上述错误信息。

    也有人提到过分辨率是原因之一,但我没有实际遇到过,如果只改小RAM没有解决问题,试着把分辨率也调低看看。

    参考资料

    “Debug certificate expired” error in Eclipse Android plugins

    Android error: Failed to install *.apk on device *: timeout

    The Android emulator is not starting, showing “invalid command-line parameter”

    Solution: Android INSTALL_FAILED_INSUFFICIENT_STORAGE error

    Android adb “Unable to open sync connection!”

    com.android.ddmlib.SyncException: Too many open files

    NoClassDefFoundError - Eclipse and Android

    Android emulator failed to allocate memory 8

    如果觉得本文内容有帮助:试试我开发的Android应用 应用计时 或 推荐+1(需登录)



    本文来自:http://www.cnblogs.com/bjzhanghao/archive/2012/11/11/2765341.html

    守望者AIR技术交流社区(www.airmyth.com)
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    
    关闭

    站长推荐上一条 /4 下一条

    QQ|手机版|Archiver|网站地图|小黑屋|守望者 ( 京ICP备14061876号

    GMT+8, 2024-3-29 06:02 , Processed in 0.047574 second(s), 35 queries .

    守望者AIR

    守望者AIR技术交流社区

    本站成立于 2014年12月31日

    快速回复 返回顶部 返回列表