cts测试android.holo包没有一项通过如下:Test Package - Passed - Failed - Timed Out - Not Executed - Total Tests 
android.holo -   0    -   24   -   0       -     0         -    24 其中第一项错误信息如下,其他大致差不多
junit.framework.AssertionFailedError: Failed bitmap names: [holo_tabhost, holo_zoomcontrols] Check /mnt/sdcard/cts-holo-assets/failed and /mnt/sdcard/cts-holo-assets/diff for details. at android.holo.cts.HoloTest.runThemeTest(HoloTest.java:142) 希望做过cts测试的朋友帮忙分析一下~

解决方案 »

  1.   

    在4.0+的系统上,所有要兼容Android CTS的手机系统都需要内置一个不可修改的Holo主题,开发者在开发程序的时候可以指定是使用Holo主题还是使用各个设备上的默认主题;同时为了便于手机厂商自定义界面,Android 4.0还引入了一个DeviceDefault主题,通过这种方式把设备主题和Holo主题分开,让手机厂商自定义界面和版本升级更加容易。
    可以察看http://yunfeng.sinaapp.com/?p=326
      

  2.   

    了解了什么是holo主题,但是错在哪还是不清楚。。我自己先慢慢看logcat吧..
      

  3.   

    我也在android.holo这遇到了一个问题,不过是adb shell timeout 60000ms.
    也没有什么解决方法,就是多测几次,就过了!
      

  4.   

    自己研究了会,可以通过饮鸩止渴的方法测试通过了...cts关键测试代码如下:@cts\tests\tests\holo\src\android\holo\cts\LayoutTestActivity.java
    protected void onPreExecute() {
        mBitmap = getBitmap();
        mReferenceBitmap = BitmapAssets.getBitmap(getApplicationContext(), mBitmapName);
        mSame = mBitmap.sameAs(mReferenceBitmap); // 关键,如果返回值是true则通过
    }
    从这里可以看出是通过图片是否匹配来确定是否通过。然后没有通过的图片会输出到指定目录,查看了没通过的图片,图片确实是存在差异的,但两张对比的图片是怎么来的还没摸清到根源。
    再看看Bitmap的sameAs方法:
    然后看一下Bitmap是如何匹配的:
    public boolean sameAs(Bitmap other) {
        return this == other || (other != null && nativeSameAs(mNativeBitmap,                 other.mNativeBitmap));
    }
    可以看到匹配的方法是判断两个图片的图像是否是同一个,或者通过本地方法来判断图片的数据是否一样。
    我把这个方法改下:
    public boolean sameAs(Bitmap other) {
        return this == other || other != null;// 如果other不是null,就肯定是返回true了。或者直接return true
    }
    重新make framework再push到机器里测试,android.holo包的24项就都可以通过了。。不过这样改其实是会造成问题的。为了通过测试,暂时这样改着- -!   测试这样改后暂时也没发现啥不良现象~ 
      

  5.   

    學習個鳥啦
    這樣修改  你不如直接改 report 
    把fail的全改成pass不是更快...
      

  6.   

    我想这个问题与屏幕尺寸,分辨率,dpi都有关系,只有正确设定他们才能pass。
    怎样根据手机设定参数请参考google这篇文章: 
    http://developer.android.com/guide/practices/screens_support.html 我之前也是24项全部fail,修改后全部pass了。我的方法如下:
    我的手机resolution:1280*720, ro.sh.lcd_density=320, 屏幕尺寸是4.5". 
    因此,要这样修改device config (device/.../.../device.mk): 
    PRODUCT_CHARACTERISTICS := phone
    ......
    PRODUCT_AAPT_CONFIG := normal hdpi xhdpi
    PRODUCT_AAPT_PREF_CONFIG := xhdpi
    p.s. 我曾经尝试只设定PRODUCT_AAPT_CONFIG := normal xhdpi, 但是系统起不来。希望这个对同样纠结于CTS的童鞋有用!