Android开发中遇到的问题

记录一下开发中遇到过的问题。

  1. 11-03-09:一个TransitionDrawable对象往一个viewgroup里add了两次,结果,调用startTransition()不能正确显示。 
    总结:在addViewInLayout之前,先detachViewsFromParent。

  2. 11-03-28:跨apk调用可以用intent.setClassName方法来做,前提是这个activity有intent filter。

  3. 11-03-30:android:minSdkVersion会对DisplayMetrics的heightPixels产生影响。

  4. 11-04-08:在View的构造函数中获取getWidth()和getHeight()只能得到0。需要使用getWindowManager().getDefaultDisplay().getWidth();

  5. 11-05-10:更新SDK 3.0和ADT10.0.0后,新建工程都会报错!“Your project contain error(s)”。看了Problem窗口的提示信息是“Error generating final archive: Debug Certificate expired on  —— Unknown Android Packaging Problem。
    原因分析:
    android要求所有的程序必须有签名,否则就不会安装该程序。在我们开发过程中,adt使用debug keystore,在 preference->android->buid中设置。debug的keystore默认有效期为一年,如果你是从一年前开始完android程序,那么在一年后导入这个app的时候很可能出现debug keystore过期,导致你无法生成 apk文件。
    此时你只要删除debug keystore就行,系统又会为你生成有效期为一年的私钥。
    解决
    方法:
    进入C:\Documents and Settings\Administrator\.android 删除路径下的debug.keystore及 ddms.cfg。
    (不同环境下的目录可能略有不同,可在eclipse中查找此路径:Window->Preferences->Android->Build下 Default debug keystore)
    然后重新导入即可。

  6. 11-05-17:在系统应用开发时,比较喜欢用rm /system/app/xxx.apk的暴力卸载方式。可是在2.3.3的模拟器中,这个方法会遇到"Directory not empty"
    原因:df发现/system目录已经满了。
    解决办法:emulator -partition-size 128 -avd [avd_name]

 

你可能感兴趣的:(android)