我正在调试运行5.1.1的三星Galaxy Note 5 Android设备上的问题
我的问题与DisplayMetrics.densityDpi
有关,它在Release和Debug版本(从Eclipse中)返回不同的值。
在Debug
下通过Eclipse,DisplayMetrics.densityDpi
返回560,而发布版本返回420。
我对此完全感到困惑,我从未见过设备这样做。我怀疑我的AndroidManifest.xml
......
<uses-sdk
android:minSdkVersion="4"
android:targetSdkVersion="22" />
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:xlargeScreens="true" />
我用来检查的代码是:
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
if (metrics.densityDpi == 420) {
Log.d(LOGTAG, "420 DPI");
} else if (metrics.densityDpi == 560) {
Log.d(LOGTAG, "560 DPI");
}
使用aapt dump badging
进行比较时,发布和调试的APK都是相同的,但输出很奇怪。
package: name='com.corytrese.games.startraders' versionCode='360' versionName='5.9.35'
sdkVersion:'4'
targetSdkVersion:'22'
application-label:'Star Traders RPG'
application-icon-120:'res/drawable-ldpi/icon.png'
application-icon-160:'res/drawable-mdpi/icon.png'
application-icon-213:'res/drawable-hdpi/icon.png'
application-icon-240:'res/drawable-hdpi/icon.png'
application-icon-320:'res/drawable-xhdpi/icon.png'
application-icon-480:'res/drawable-xxhdpi/icon.png'
application-icon-640:'res/drawable-xxhdpi/icon.png'
application-icon-65535:'res/drawable-xxhdpi/icon.png'
application: label='Star Traders RPG' icon='res/drawable-mdpi/icon.png'
application-debuggable
launchable-activity: name='com.corytrese.games.startraders.menu.MainMenu' label='Star Traders RPG' icon=''
uses-feature:'android.hardware.touchscreen'
uses-implied-feature:'android.hardware.touchscreen','assumed you require a touch screen unless explicitly made optional'
main
other-activities
supports-screens: 'small' 'normal' 'large' 'xlarge'
supports-any-density: 'true'
locales: '--_--' 'ca' 'da' 'fa' 'ja' 'nb' 'de' 'af' 'bg' 'th' 'fi' 'hi' 'vi' 'sk' 'uk' 'el' 'nl' 'pl' 'sl' 'tl' 'am' 'in
' 'ko' 'ro' 'ar' 'fr' 'hr' 'sr' 'tr' 'cs' 'es' 'it' 'lt' 'pt' 'hu' 'ru' 'zu' 'lv' 'sv' 'iw' 'sw' 'fr_CA' 'lo_LA' 'en_GB'
'bn_BD' 'et_EE' 'ka_GE' 'ky_KG' 'km_KH' 'zh_HK' 'si_LK' 'mk_MK' 'ur_PK' 'hy_AM' 'my_MM' 'zh_CN' 'ta_IN' 'te_IN' 'ml_IN'
'en_IN' 'kn_IN' 'mr_IN' 'mn_MN' 'ne_NP' 'gl_ES' 'eu_ES' 'is_IS' 'es_US' 'pt_PT' 'zh_TW' 'ms_MY' 'kk_KZ' 'uz_UZ'
densities: '120' '160' '213' '240' '320' '480' '640' '65535' 'gl_ES' 'eu_ES' 'is_IS' 'es_US' 'pt_PT' 'zh_TW' 'ms_MY' 'kk_KZ' 'uz_UZ'
密度:'120''160''213''240''320''480''640''65535'
我没有看到560或420列出,也没有看到我的xxxhdpi drawables被引用。
答案 0 :(得分:0)
这是由Android中的错误造成的,这些错误似乎与Note 5提供的库存操作系统映像有关。我会将此问题报告给Google错误跟踪器。
虽然这个问题很不幸,但可以通过使用带有android:debuggable =“true”的签名APK进行测试来解决这个问题。通过这种方式,您可以看到设备的应用程序的“正常”DPI,而不是它为调试版本分配的错误。
不幸的是,这个问题会影响我测试的所有类型的调试版本:Android Studio,Eclipse或Ant。他们都没有能力为Note 5上的问题提供解决方法。