Java 什么会导致Android';s DisplayMetrics.densityDpi在发布版本和调试版本之间是否存在差异?
我正在调试运行5.1.1的三星Galaxy Note 5 Android设备上的一个问题 我的问题与DisplayMetrics.densityDpi有关,它在发行版和调试版(来自Eclipse)下返回不同的值 在通过Eclipse进行的Java 什么会导致Android';s DisplayMetrics.densityDpi在发布版本和调试版本之间是否存在差异?,java,android,eclipse,samsung-mobile,Java,Android,Eclipse,Samsung Mobile,我正在调试运行5.1.1的三星Galaxy Note 5 Android设备上的一个问题 我的问题与DisplayMetrics.densityDpi有关,它在发行版和调试版(来自Eclipse)下返回不同的值 在通过Eclipse进行的Debug下,DisplayMetrics.densityDpi返回560,而发布版本返回420 我完全被这件事难住了,我从来没有见过一个设备能做到这一点。我怀疑我的AndroidManifest.xml中存在问题 <uses-sdk androi
Debug
下,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" />
当使用aapt dump-bading
进行比较时,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绘图表被引用。这是由安卓系统中的错误造成的,而安卓系统中的错误似乎与附注5中提供的股票操作系统映像有关。我将向谷歌bug追踪器报告这个问题 虽然这个问题很不幸,但可以通过使用android:debuggable=“true”测试签名的APK来解决这个问题。这样,您就可以看到应用程序的设备“正常”DPI,而不是它分配给调试构建的错误DPI
不幸的是,这个问题影响了我测试的所有类型的调试构建:AndroidStudio、Eclipse或Ant。他们中没有一个能够为注释5中的问题找到解决办法。好吧,现在,这是一个疯狂的想法。你可以在调试版本和发布版本上运行
aapt dump-bading
,看看你的APK中有什么不同之处可能会产生影响。创建一个新的应用程序并运行相同的测试。此外,仅三星的bug很常见且难以理解,因此如果只是这样,请不要感到惊讶。我将aapt-dump-bading
并更新我的问题,以及尝试用我可以连接的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'