安卓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应该就能正常升级安装了!