DCloud_Android_ST
DCloud_Android_ST
  • 发布:2019-03-16 19:42
  • 更新:2024-04-28 10:49
  • 阅读:32580

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

要回复文章请先登录注册

m***@xingfufit.com

m***@xingfufit.com

回复 l***@163.com :
嗯嗯,在没法过渡。app感觉都要废了
2020-05-18 14:27
l***@163.com

l***@163.com

回复 m***@xingfufit.com :
没有呢,试了很多方法了
2020-05-18 13:53
m***@xingfufit.com

m***@xingfufit.com

回复 l***@163.com :
您好,问一下这个问题解决了吗?现在我们也遇见这个问题
2020-05-18 11:51
l***@163.com

l***@163.com

回复 l***@163.com :
"<uses-permission android:name=\"android.permission.INSTALL_PACKAGES\"/>",
"<uses-permission android:name=\"android.permission.REQUEST_INSTALL_PACKAGES\"/>"
],
"targetSdkVersion":28


这是我插入的三行代码
2020-05-15 16:33
l***@163.com

l***@163.com

回复 DCloud_Android_ST :
https://service.dcloud.net.cn/build/download/abea0430-967a-11ea-93d9-b59d6844abd8
我就和之前的打包一样,现在是安卓高端机(系统10.0)一直循环更新,就是安装不上,但是之前的安卓手机是可以的
2020-05-15 16:29
DCloud_Android_ST

DCloud_Android_ST (作者)

回复 l***@163.com :
你是离线打包还是怎么 描述下
2020-05-15 16:27
l***@163.com

l***@163.com

回复 天空微算 :
我按照作者的方法,但是没有成功呢
2020-05-15 16:18
DCloud_Android_ST

DCloud_Android_ST (作者)

回复 小权 :
targetSdkVersion 改为26试下
2020-05-13 11:22
7***@qq.com

7***@qq.com

回复 w***@163.com :
我的也是这样
2020-05-12 21:52
小权

小权

离线打包,以前按这配置是可以的,但是我升到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