1

我有一个用 monaca 开发的 android 应用程序。我的一些用户拥有三星 S7 手机。当他们安装该应用程序时,它说它不兼容。我在 Play 开发者控制台中查看了设备目录,它说支持所有 Galaxy S7。

该应用程序不使用任何特殊权限,我找不到任何原因为什么只有三星手机出现此问题。它也不是一个大应用程序(~2.5MB)。

这是 config.xml 文件:

<?xml version='1.0' encoding='utf-8'?>
<widget id="" version="1.0.3" xmlns="http://www.w3.org/ns/widgets" xmlns:android="http://schemas.android.com/apk/res/android">
    <name></name>
    <description>Made with Monaca (http://monaca.mobi)</description>
    <author />
    <content src="index.html" />
    <allow-navigation href="*" />
    <allow-intent href="itms:*" />
    <allow-intent href="itms-apps:*" />
    <preference name="loglevel" value="DEBUG" />
    <preference name="AndroidLaunchMode" value="singleTop" />
    <preference name="ErrorUrl" value="" />
    <preference name="SplashScreen" value="screen" />
    <preference name="AllowInlineMediaPlayback" value="false" />
    <preference name="BackupWebStorage" value="cloud" />
    <preference name="FadeSplashScreenDuration" value="250" />
    <preference name="KeyboardDisplayRequiresUserAction" value="true" />
    <preference name="MediaPlaybackRequiresUserAction" value="false" />
    <preference name="SuppressesIncrementalRendering" value="false" />
    <preference name="TopActivityIndicator" value="gray" />
    <preference name="GapBetweenPages" value="0" />
    <preference name="PageLength" value="0" />
    <preference name="PaginationBreakingMode" value="page" />
    <preference name="PaginationMode" value="unpaginated" />
    <feature name="LocalStorage">
        <param name="ios-package" value="CDVLocalStorage" />
    </feature>
    <preference name="UIWebViewDecelerationSpeed" value="normal" />
    <preference name="KeyboardShrinksView" value="true" />
    <platform name="ios">
        <icon height="60" src="/res/ios/icon/icon-60.png" width="60" />
        <icon height="120" src="/res/ios/icon/icon-60@2x.png" width="120" />
        <icon height="180" src="/res/ios/icon/icon-60@3x.png" width="180" />
        <icon height="76" src="/res/ios/icon/icon-76.png" width="76" />
        <icon height="152" src="/res/ios/icon/icon-76@2x.png" width="152" />
        <icon height="80" src="/res/ios/icon/icon-40@2x.png" width="80" />
        <icon height="29" src="/res/ios/icon/icon-small.png" width="29" />
        <icon height="58" src="/res/ios/icon/icon-small@2x.png" width="58" />
        <icon height="87" src="/res/ios/icon/icon-small@3x.png" width="87" />
        <icon height="167" src="/res/ios/icon/icon-83.5@2x~ipad.png" width="167" />
        <icon height="144" src="/res/ios/icon/icon-72@2x.png" width="144" />
        <icon height="72" src="/res/ios/icon/icon-72.png" width="72" />
        <icon height="100" src="/res/ios/icon/icon-50@2x.png" width="100" />
        <icon height="57" src="/res/ios/icon/icon.png" width="57" />
        <icon height="114" src="/res/ios/icon/icon@2x.png" width="114" />
        <icon height="40" src="/res/ios/icon/icon-40.png" width="40" />
        <icon height="50" src="/res/ios/icon/icon-50.png" width="50" />
        <splash height="480" src="/res/ios/screen/Default~iphone.png" width="320" />
        <splash height="960" src="/res/ios/screen/Default@2x~iphone.png" width="640" />
        <splash height="1334" src="/res/ios/screen/Default-667h.png" width="750" />
        <splash height="1136" src="/res/ios/screen/Default-568h@2x~iphone.png" width="640" />
        <splash height="2208" src="/res/ios/screen/Default-736h.png" width="1242" />
        <splash height="1242" src="/res/ios/screen/Default-Landscape-736h.png" width="2208" />
        <splash height="1024" src="/res/ios/screen/Default-Portrait~ipad.png" width="768" />
        <splash height="768" src="/res/ios/screen/Default-Landscape~ipad.png" width="1024" />
        <splash height="2048" src="/res/ios/screen/Default-Portrait@2x~ipad.png" width="1536" />
        <splash height="1536" src="/res/ios/screen/Default-Landscape@2x~ipad.png" width="2048" />
        <config-file parent="CFBundleLocalizations" platform="ios" target="*-Info.plist">
            <array>
                <string>en</string>
            </array>
        </config-file>
    </platform>
    <platform name="android">
        <icon density="ldpi" src="/res/android/icon/ldpi.png" />
        <icon density="mdpi" src="/res/android/icon/mdpi.png" />
        <icon density="hdpi" src="/res/android/icon/hdpi.png" />
        <icon density="xhdpi" src="/res/android/icon/xhdpi.png" />
        <icon density="xxxhdpi" src="/res/android/icon/xxxhdpi.png" />
        <icon density="xxhdpi" src="/res/android/icon/xxhdpi.png" />
        <splash density="port-ldpi" src="/res/android/screen/splash-port-ldpi.9.png" />
        <splash density="port-mdpi" src="/res/android/screen/splash-port-mdpi.9.png" />
        <splash density="port-hdpi" src="/res/android/screen/splash-port-hdpi.9.png" />
        <splash density="port-xhdpi" src="/res/android/screen/splash-port-xhdpi.9.png" />
        <splash density="port-xxhdpi" src="/res/android/screen/splash-port-xxhdpi.9.png" />
        <splash density="port-xxxhdpi" src="/res/android/screen/splash-port-xxxhdpi.9.png" />
        <config-file parent="/*" target="AndroidManifest.xml">
            <compatible-screens>
                <screen android:screenDensity="ldpi" android:screenSize="small" />
                <screen android:screenDensity="mdpi" android:screenSize="small" />
                <screen android:screenDensity="hdpi" android:screenSize="small" />
                <screen android:screenDensity="xhdpi" android:screenSize="small" />
                <screen android:screenDensity="xxhdpi" android:screenSize="small" />
                <screen android:screenDensity="xxxhdpi" android:screenSize="small" />
                <screen android:screenDensity="ldpi" android:screenSize="normal" />
                <screen android:screenDensity="mdpi" android:screenSize="normal" />
                <screen android:screenDensity="hdpi" android:screenSize="normal" />
                <screen android:screenDensity="xhdpi" android:screenSize="normal" />
                <screen android:screenDensity="xxhdpi" android:screenSize="normal" />
                <screen android:screenDensity="xxxhdpi" android:screenSize="normal" />
                <screen android:screenDensity="560" android:screenSize="normal" />
            </compatible-screens>
        </config-file>
    </platform>
    <platform name="windows">
        <icon src="/res/winrt/icon/package_logo_winrt.png" target="StoreLogo" />
        <icon src="/res/winrt/icon/app_logo_winrt.png" target="Square150x150Logo" />
        <icon src="/res/winrt/icon/app_small_logo_winrt.png" target="Square30x30Logo" />
        <icon src="/res/winrt/icon/app_tile_wide_logo_winrt.png" target="Wide315x150Logo" />
        <splash height="300" src="/res/winrt/screen/app_splash_screen_winrt.png" width="620" />
    </platform>
    <platform name="chrome">
        <icon height="128" src="/platforms/chrome/icon.png" width="128" />
    </platform>
    <preference name="WindowsStorePublisherName" value="My Name" />
    <preference name="WindowsStoreIdentityName" value="7f6c64e1-c804-8b64-e1ff-232dc96ea114" />
    <preference name="ios-XCBuildConfiguration-TARGETED_DEVICE_FAMILY" value="1" />
    <preference name="AutoHideSplashScreen" value="true" />
    <preference name="FadeSplashScreen" value="true" />
    <preference name="ShowSplashScreenSpinner" value="false" />
    <preference name="EnableViewportScale" value="false" />
    <preference name="SplashShowOnlyFirstTime" value="false" />
    <access origin="*" />
    <preference name="KeepRunning" value="true" />
    <preference name="monaca:AndroidIsPackageNameSeparate" value="true" />
    <preference name="DisallowOverscroll" value="true" />
    <preference name="Orientation" value="portrait" />
    <preference name="SplashScreenDelay" value="3000" />
    <preference name="Fullscreen" value="false" />
    <plugin name="ionic-plugin-keyboard" spec="~2.2.1" />
</widget>

我才开发一年半,这是我堆栈溢出的第一个问题。如果我在发布此内容时犯了任何 n00b 错误,请提前道歉...

并提前感谢任何花时间阅读本文的人!

4

1 回答 1

0

我怀疑这是您的兼容屏幕列表。我无法确定您的 config.xml 文件是如何转换为 Android 清单的,因为我不熟悉该monaca框架,但在我看来,您的应用程序只支持小型和正常的屏幕尺寸。拒绝所有大屏幕和超大屏幕以及一些密度。

< compatible-screens > 标签状态的文档:

警告:通常,您不应使用此清单元素。使用此元素可以显着减少应用程序的潜在用户群,因为如果用户的设备具有您未列出的屏幕配置,则不允许他们安装您的应用程序。当应用程序绝对不能使用特定的屏幕配置时,您应该仅将其用作最后的手段。您应该遵循 Supporting Multiple Screens 指南,使用针对不同屏幕尺寸和密度的替代布局和位图为多个屏幕提供可扩展的支持,而不是使用此元素。

假设您的框架允许,我建议您遵循他们的建议。例如,我的应用程序的屏幕尺寸/密度兼容性策略在清单中的一行中实现:

  <supports-screens android:smallScreens="false" />

支持除小屏幕外的所有屏幕。

于 2017-11-18T16:24:08.217 回答