安卓App自动升级卡在 TJFileProvider.JavaClass.getUriForFile

安卓app自动升级可以参考红鱼儿的文章:

安卓App自动升级 - 红鱼儿 - 博客园 (cnblogs.com)

由于在安卓7.0以上要进行APP的自动升级,需用到FileProvider.getUriForFile方法共享安装包,

delphi10.3以后版本,项目选项张有选择项Secure File Sharing,默认为true,只需要设置为true,ide会为我们在AndroidManifest.template.xml增加

provider相关内容,同时生成文件provider_paths.xml,但是在有的时候勾选择项Secure File Sharing并不会在AndroidManifest.template.xml文件中增加 provider相关内容,

如果依照上述步骤后,运行到安装apk这步无响应,可以在项目目录下找到AndroidManifest.template.xml,在

<application标签下加入一行代码 <%provider%>,
    <application android:persistent="%persistent%" 
        android:restoreAnyVersion="%restoreAnyVersion%" 
        android:label="%label%" 
        android:debuggable="%debuggable%" 
        android:largeHeap="%largeHeap%"
        android:icon="%icon%"
        android:theme="%theme%"
        android:hardwareAccelerated="%hardwareAccelerated%"
        android:usesCleartextTraffic="true"
        android:requestLegacyExternalStorage="true">
        <%provider%>
程序编译后会在 AndroidManifest.xml文件中生成<provider 标签及FileProvider相关信息
    <provider
            android:name="android.support.v4.content.FileProvider"
            android:authorities="com.embarcadero.smartlock.fileprovider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/provider_paths" />
        </provider>

安卓app应该就能正常升级安装了!

 

posted @ 2021-08-04 15:11  dqi1999  阅读(372)  评论(0编辑  收藏  举报