我的Android应用程序无法安装在一些"随机"的旧API设备上(任何低于API级别25的设备),错误:
INSTALL_PARSE_FAILED_MANIFEST_MALFORMED
所以,基本上看起来…25 ?畸形:良好
我见过类似的问题,其中答案与小写包名有关。我已经有了。
有人有什么想法吗?
清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="128" android:versionName="1.2.8.0" package="com.vrgamestudio.thegame" android:targetSandboxVersion="2" android:installLocation="auto">
<uses-sdk android:targetSdkVersion="29" />
<application android:isGame="true" android:label="@string/ApplicationName" android:icon="@drawable/GameThumbnail" android:theme="@style/Theme.Splash">
<activity android:name="TheGame.ActivityMain" android:alwaysRetainTaskState="true" android:launchMode="singleInstance" android:screenOrientation="fullSensor" android:configChanges="orientation|keyboard|keyboardHidden|screenSize|screenLayout">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="TheGame.ActivityTV" android:icon="@drawable/gamethumbnail" android:theme="@style/Theme.Leanback" android:banner="@drawable/banner320x180" android:alwaysRetainTaskState="true" android:launchMode="singleInstance" android:screenOrientation="fullSensor" android:configChanges="orientation|keyboard|keyboardHidden|screenSize|screenLayout">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-feature android:name="android.hardware.gamepad" android:required="false" />
<uses-feature android:name="android.hardware.touchscreen" android:required="false" />
<uses-feature android:name="android.hardware.faketouch" android:required="false" />
<uses-feature android:name="android.hardware.telephony" android:required="false" />
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.nfc" android:required="false" />
<uses-feature android:name="android.hardware.location.gps" android:required="false" />
<uses-feature android:name="android.hardware.microphone" android:required="false" />
<uses-feature android:name="android.hardware.sensor" android:required="false" />
<uses-feature android:name="android.software.leanback" android:required="false" />
<uses-feature android:name="android.hardware.type.television" android:required="false" />
<uses-feature android:name="android.software.leanback_only" android:required="false" />
</manifest>
BTW我正在使用Visual Studio 2019和MonoGame 3.7
在这里解决并发布了答案:
https://community.monogame.net/t/install-parse-failed-manifest-malformed-only-on-some-devices
简而言之,答案是:
在旧的api版本(<25,因此你应该总是这样做来支持他们?),似乎Android需要:
活动名称属性的完全限定命名空间必须是小写的。