Android应用程序开发常见问题汇总

问:在平时 Android 开发时突然执行程序,出现了 Application does not specify a android.test.InstrumentationTestRunner instrumentation or does not declare uses- libraryandroid.test.runner的错误提示?
答:这主要是你在Run As中错误的选择了目标为Android JUnit Test这项导致的,解决的方法也很简单在Run Dialog中删除JUnit Test这条即可。

===================================================
问:出现 NSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES的错误提示怎么办?
答:这样的问题主要是签名冲突 造成的,比如你使用了ADB的debug权限签名,但后来使用标准sign签名后再安装同一个文件会出现这样的错误提示,解决的方法只有先老老实实从 手机 上卸载原有版本再进行安装,而adb install -r参数是无法解决这个问题。

====================================================
问:装了Android 1.5版本后,发现过去的ADT 0.8版本插件无法自动更新怎么办?
答: Google已经将Android进行了大的调整,我们安装1.5版 SDK必需先先卸载过去的0.8或更早版本插件。
步骤为: 在Eclipse的菜单中找到 Help > Software Updates > Manage Configuration. 展开左边树图,找到Android Editors 0.8.0.v200809220836-110569,单击鼠标右键咋弹出的菜单中选择Uninstall即可。

=====================================================
问:使用 Eclipse+ADT开发调试Android 软件时发现安装一个apk文件出错,出现类似Re-installation failed due to different application signatures.You must perform a full uninstall of the application. WARNING: This will remove the application data! Please execute 'adb uninstall om.android123.Demo' in a shell.的错误?
答:主要原因是ADT 插件赋予APK文件debug签名时数字效验出错可能因为ADT版本不同、APK不是这台计算机生产的在模拟器或Android手机上,解决的方法可以直 接在真机中删除该程序,重新执行即可,或在shell中直接adb uninstall 后重新安装。

=======================================================
问:Android 使用什么语言开发?
答:Android SDK仅提供了Java语言的开发包,但和Sun Java Micro Editon不兼容,需要使用Google Dalvik虚拟机可以识别的Java语言,更多参考Android SDK。目前不支持C/C++等其他语言,但通过ARM C++交叉编译 器可以通过静态库方式在Android模拟器上执行本地C++程序,但最终由于权限等问题可能无法在Android手机上使用。

========================================================
问:无法对 jar 进行签名:java.util.zip.ZipException: invalid entry compressed size (expected xxx but got xxx bytes)怎么办?
答:这些问题主要是由于资源文件造成的,对于android开发来说 应该检查res文件夹中的文件,逐个排查。这个问题可以通过升级系统的JDK和JRE版本来解决。。

==========================================================
问:Android程序为什么没有退出设计?
答:Google Android平台在设计程序声明周期上比较特殊,可能是考虑到第二次加载时保证速度的原因而没有强制加入内存释放问题,所有的资源回收由Dalvik GC自动完成,所以在设计开发时一定要注意Activity和 Service类的生命周期问题,显示在最上层的窗口将有最高的优先级,当Android操作系统内存不够用时自动将会根据历史栈按优先级强制杀掉进程。

===========================================================
问: 开发过程中为什么Android系统去除了一些实用的类,比如Base64?
答:很早在Android.Util中我们可以看到Base64编码 类,但是到了Android 0.9时转移到了org.apache.http中,最后到了Android 1.0时去除了,但是系统仍然内部存在该类,Base64编码除了在二进制文件传输有用外,系统的PIN密码框加密也采用了Base64编码,最终还是去 除了,我们可以通过自己实现对照表等方式来实现这个方法,比如在ESTMP这样的邮件服务器中用户名和密码仍然需要Base64加密。

===========================================================
问:Can't upload xxx.apk问题怎么解决?
答:当前工程在编译后没有生成相关apk文件,apk文件一般位于工程的bin目录下,里面还会存 放.class文件=>dex文件。Android开发网提醒这类错误IDE一般没有提示错误信息,如果工程不是很庞大的话,可以重新创建一个工程 逐一分析。

你可能感兴趣的:(Android应用程序开发常见问题汇总)