红鱼儿

Delphi 编译的app无法在android 14安装

今天用delphi 12.1升级旧项目,编译正常,但安装时出下面的提示:

08:48:26 E/SplitApkInstaller: Failed to finalize session : INSTALL_PARSE_FAILED_MANIFEST_MALFORMED: Failed parse during installPackageLI: /data/app/vmdl1849586780.tmp/base.apk (at Binary XML file line #67): com.embarcadero.firemonkey.CCFMXNativeActivity: Targeting S+ (version 31 and above) requires that an explicit value for android:exported be defined when intent filters are present
[BT:1.5.0] Error: Installation of the app failed.
com.android.tools.build.bundletool.model.exceptions.CommandExecutionException: Installation of the app failed.
    at com.android.tools.build.bundletool.model.exceptions.InternalExceptionBuilder.build(InternalExceptionBuilder.java:57)
    at com.android.tools.build.bundletool.device.DdmlibDevice.installApks(DdmlibDevice.java:145)

解决方法,在AndriodManifest.template.xml文件中增加一句:android:exported="true":

        <activity android:name="com.embarcadero.firemonkey.CCFMXNativeActivity"
                android:label="%activityLabel%"
                android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
                android:launchMode="singleTask"
                android:exported="true">
            <!-- Tell NativeActivity the name of our .so -->
            <meta-data android:name="android.app.lib_name"
                android:value="%libNameValue%" />
            <intent-filter>  
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter> 
        </activity>

 正常情况下,你用D12建的项目不存在这个问题,升级旧的项目才可能遇到,因为D12自动加了android:exported="true"。

 

posted on 2024-04-10 08:57  红鱼儿  阅读(643)  评论(0编辑  收藏  举报