uniapp按照官方《针对plus.runtime.install在安卓9.0+上无法执行的解决方案》处理后报错:安装包解析错误

uniapp版本升级时,使用plus.runtime.install

真机连接调试的时候没有问题,可以正常安装

离线打包后可以下载,却不可以安装,

官方给的解决办法是:《针对plus.runtime.install在安卓9.0+上无法执行的解决方案

离线打包配置

  1. 将build.gradle中的targetSdkVersion调到26或者更高。(我调到28)

  2. 在Androidmanifest.xml添加provider节点,将里面的XXXX.XXX.XX(当前的应用包名)改成自己应用的包名。(自己应用的包名即applicationId的值)(provider添加在application节点内,与activity节点同级)

        <provider  
            android:name="io.dcloud.common.util.DCloud_FileProvider"  
            android:authorities="XXXX.XXX.XX(当前的应用包名).dc.fileprovider"  
            android:exported="false"  
            android:grantUriPermissions="true">  
            <meta-data  
                android:name="android.support.FILE_PROVIDER_PATHS"  
                android:resource="@xml/dcloud_file_provider" />  
        </provider>  

     

  3. 在Androidmanifest.xml中添加权限。
    注:最新版SDK已经将权限加入基础库里面使用时请下载最新版SDK

    <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>  

     

error:按照官方办法,打包后安装,报:解析错误

我的应用里面有使用到地图定位,所以我有添加地图的相关元数据和服务,我把provider节点放在地图节点后的时候(如下图),运行生成的安装包报错:解析错误,无法安装安装包。

        <!-- Maps(地图) begin -->
        <!--调试版-->
        <!--<meta-data android:name="com.amap.api.v2.apikey"-->
            <!--android:value="XXXX"/>-->
        <!--发布版-->
        <meta-data android:name="com.amap.api.v2.apikey"
            android:value="XXXXX"/>
        <service android:name="com.amap.api.location.APSService" />
        <!-- Maps(地图) end -->

        <!--  provider放在地图下面时安装报错:解析错误 -->
        <!--  但是将provider放在地图上面时可以安装,不知道为什么 -->

        <!-- 针对plus.runtime.install在安卓9.0+上无法执行的解决方案 begin -->
        <provider
            android:name="io.dcloud.common.util.DCloud_FileProvider"
            android:authorities="我的包名.dc.fileprovider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/dcloud_file_provider" />
        </provider>
        <!-- 针对plus.runtime.install在安卓9.0+上无法执行的解决方案 end -->

当我把provider节点放在地图节点上面的时候,安装包可以安装,不再报错,我不知道为什么。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值