DCloud_Android_ST
DCloud_Android_ST
  • 发布:2019-03-16 19:42
  • 更新:2024-09-05 17:33
  • 阅读:35769

针对plus.runtime.install在安卓9.0+上无法执行的解决方案

分类:HTML5+

先确保你的IDE使用的是HBuilderX, 老HBuilder用户请升级HBuilderX

云打包配置

云打包时配置manifest.json将targetSdkVersion改为26或更高 最高建议28。
5+应用:
http://ask.dcloud.net.cn/article/94


uniapp:
https://uniapp.dcloud.io/collocation/manifest

如果提交云端打包后调用plus.runtime.install无法安装apk文件,请添加以下权限

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

如何添加权限?可参考

TIPS

云打包配置修改完毕后。请重新提交云端打包。生成你的APK,该APK才有调用plus.runtime.install安装APK的能力。

离线打包配置

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

  2. 在Androidmanifest.xml添加provider节点,将里面的io.dcloud.HBuilder改成自己应用的包名。

        <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"/>  

配置完权限请重新编译生成APK。该APK才有调用plus.runtime.install安装APK的能力。

13 关注 分享
choin 罪途 i***@qq.com 花鸟风月 r***@163.com 我要了明天 天空微算 l***@126.com 小花瓶 l***@qq.com 2***@qq.com 1***@test.com 8***@qq.com

要回复文章请先登录注册

1***@qq.com

1***@qq.com

我对比了一个能执行安装APP的包,发现他的权限比我多了个请求安装文件包,是不是这个原因导致我的不能安装,请问这个请求安装文件包的权限是在哪里设置的?
2019-08-02 10:57
1***@qq.com

1***@qq.com

这个问题,我也遇到了客户反映在三星手机上也是如此,执行下载之后就不处理了,然后我在自己的小米8(安卓9)上测试,提示安装下载,然后下载完成之后一闪而过,不执行安装,我把targetsdkversion 改成了28,再次测试依然没有安装,请问应该怎么办,产品说这是客户反映的问题必须首要解决,我还不知道具体什么原因..........
2019-08-02 10:08
苛学加

苛学加

离线打包更新的SDK,被这个地方坑了好久几天2333,没找到相关文档
在Androidmanifest.xml添加provider节点,将里面的io.dcloud.HBuilder改成自己应用的包名。
2019-07-26 15:52
9***@qq.com

9***@qq.com

我的问题解决了,因为引入广告联盟,我把android:resource="@xml/file_provider"的路径改成了广告联盟的文件。最后把两个文件的内容合并后OK了。希望能给遇到同样问题的朋友一点提醒。
2019-07-02 19:19
9***@qq.com

9***@qq.com

按这个要求配置的,还是不行。还有别的注意事项吗?
2019-07-02 18:58
1***@qq.com

1***@qq.com

我改了还是不行啊
2019-06-03 10:23
zhangdaren

zhangdaren

回复 kkdream :
感谢,,可以安装啦~~
2019-06-01 17:49
DCloud_Android_ST

DCloud_Android_ST (作者)

回复 zhangdaren :
如果你屏蔽后依然可以正常执行安装逻辑。那就自行控制是否屏蔽。
2019-05-29 16:38
zhangdaren

zhangdaren

回复 DCloud_Android_ST :
那应该怎么搞?不屏蔽都没法调试了。。。
2019-05-29 16:19
kkdream

kkdream

AndroidManifest.xml中的package="xx.xxxx.xxx" ,
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="xx.xxxx.xxx.fileprovider"
还有build.gradle中 applicationId "xx.xxxx.xxx"
三处都要统一,不然用plus.runtime.install安装apk很可能不成功
2019-05-28 19:45