记录一下升级Delphi的同时把APP升级到安卓11
浏览论坛看到关于安卓上架的讨论,就试了一下自己以前试着玩的项目。
每次IDE或安卓升级都有好多问题,这次的问题是:
一)安装Delphi11时,安卓SDK未自动安装。
完全同样的安装选项,家里台式机自动安装了,但不知道为什么笔记本这个目录是空的:
“C:\Users\Public\Documents\Embarcadero\Studio\22.0\CatalogRepository\AndroidSDK-2525-22.0.42600.6491”
解决方式是自己去下载一个SDK,谁知谷歌下载只有Android studio了,就搜了一下从第三方网站下载了SDK,解压到了:
“C:\Users\Public\Documents\Embarcadero\Studio\22.0\CatalogRepository\AndroidSDK”
二)SDK没有API-30.
打开SDK目录,执行有界面的SDK Manager.exe,发现只到API-29。
根据论坛其它朋友的方法,去tools\bin下执行sdkmanager.bat。具体步骤:
1. sdkmanager.bat --list (查看已安装,可用,可升级的组件,下面版本以后会变哦)
2. sdkmanager.bat "platforms;android-30" (安装)
3. sdkmanager.bat "build-tools;30.0.3" (安装)
4. …… (需要什么装什么)
这个时候,有界面的SDK Manager.exe里面也可以看到这些版本的组件了。
当然RAD里面配置SDK的地方也需要手动改好这些目录。
三)读写权限和获取.
1. PermissionsService.RequestPermissions 函数发生了一些变化编译通不过,这个参考源代码改就可以了。
2. 安卓9还是10开始需要android:requestLegacyExternalStorage="true"才能读外部存储。这个我没继续验证。
3. 因为我用的是Delphi11,所以目标API已经是30了,所以我啥都没改。
4. 旧项目目标平台,Android,下面Libraries,里面全是红叉叉,这个整死人了因为没展开所以完全没注意到,需要右键点Libraries菜单选Revert to default,否者APP运行时才报找不到XX类的错误。
四)只能读写媒体文件了?
以前可以读写txt一类,现在双11出来的APK只有媒体(mp4,mp3,jpg)等可以列表和读取,这个我不太懂也没去研究。毕竟工作和安卓完全无关……不太理解,也是为了安全?如果想打开一个txt,会报权限不足。
盒子上转贴过来的,原文地址: