无需Maven或Gradle,如何获取FileProvider对应的AAR并使用?
不使用Gradle获取androidx.core的AAR包
androidx.core库(包含FileProvider)发布在Maven Central仓库,可直接下载对应版本的AAR包:
- 确定需要的版本(比如最新稳定版
1.12.0) - 找到对应版本的AAR资源直接下载(文件命名格式为
core-版本号.aar)
用d8/dex工具集成FileProvider功能
下载好AAR后,按以下步骤处理并集成到你的安卓项目:
- 解压AAR包,提取其中的
classes.jar文件(AAR本质是压缩包,可直接用解压工具打开) - 使用d8工具将
classes.jar转换为dex文件,执行命令:
执行后,d8 classes.jar --output ./dex_outputdex_output目录会生成classes.dex文件 - 将生成的
classes.dex添加到你的应用打包流程中(比如和应用自身的dex文件一起打包成APK) - 配置
AndroidManifest.xml,注册FileProvider组件:
注意替换<provider android:name="androidx.core.content.FileProvider" android:authorities="com.your.package.name.fileprovider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths" /> </provider>com.your.package.name为你的应用实际包名 - 在
res/xml目录下创建file_paths.xml,定义允许共享的文件路径示例:<paths xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 共享外部存储的应用私有目录 --> <external-files-path name="external_app_files" path="." /> <!-- 共享内部存储的files目录 --> <files-path name="internal_files" path="." /> </paths>
必须用Gradle时仅获取该库的方法
如果需要通过Gradle下载,可使用Docker容器临时运行Gradle,无需本地安装Gradle环境:
- 新建临时目录,在其中创建
build.gradle文件,内容如下:plugins { id 'java' } repositories { mavenCentral() } dependencies { implementation 'androidx.core:core:1.12.0' // 替换为需要的版本 } task downloadAar(type: Copy) { from configurations.compileClasspath into 'libs' include '*.aar' } - 执行Docker命令运行Gradle任务下载AAR:
docker run --rm -v "$(pwd)":/project -w /project gradle:7.6-jdk11 gradle downloadAar - 任务完成后,临时目录下的
libs文件夹会出现下载好的androidx.core AAR包,后续可删除临时目录及相关文件
内容的提问来源于stack exchange,提问作者humanityANDpeace
相关产品推荐
相关产品推荐

