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节点放在地图节点上面的时候,安装包可以安装,不再报错,我不知道为什么。

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐