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

针对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

要回复文章请先登录注册

小权

小权

离线打包,以前按这配置是可以的,但是我升到targetSdkVersion 29(Migrate to AndroidX)以后,只要在Androidmanifest.xml添加这个provider节点,打出来的包安装后无法运行(安装成功后,点击app没反应),logcat对应报错信息:
Didn't find class "android.support.v4.content.FileProvider" on path...
Unable to get provider io.dcloud.common.util.DCloud_FileProvider:...
2020-05-12 18:37
梦寻汝

梦寻汝

回复 1***@qq.com :
同问 你这解决了吗
2020-04-17 09:42
1***@qq.com

1***@qq.com

加了这些代码之后,安卓9以上可以正常下载安装apk了,但是hbuilder的配置文件manifest.json中配置的状态栏参数在离线打包中无效了
2020-04-13 09:37
飞鹏

飞鹏

回复 1***@qq.com :
我们也是两年前的hbuilder做的5+app,现在换成hx也是可以的,就一个IDE而已。
2020-04-02 10:58
1***@qq.com

1***@qq.com

测试测试测试测试测试
2020-03-20 17:21
DCloud_Android_ST

DCloud_Android_ST (作者)

HBuilderX2.6.3之前是有的
2020-03-20 11:27
9***@qq.com

9***@qq.com

按照你的配置确实可以了 但是我想请问一下 那之前打包已经安装的用户代码是没加安装权限的 怎么办啊
2020-03-20 11:24
DCloud_Android_ST

DCloud_Android_ST (作者)

回复 w***@163.com :
文档已更新
2020-03-19 20:37
w***@163.com

w***@163.com

uniapp为什么这样改了还是不行。。。下载下来了但是不执行安装。。。
2020-03-19 19:36
7***@qq.com

7***@qq.com

一定是要 包名就是applicationId 就能安装了
<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>
2020-03-06 14:56