猿问

DocumentsContract 的某些方法在包含在我的 Android 应用程序中时未编译

我想为我的应用程序添加存储访问框架支持。


我为一些 SAF 操作创建了一个实用程序 Java 类。


我将它添加到一个示例项目中


compileSdkVersion 29

buildToolsVersion "29.0.0"

minSdkVersion 25

targetSdkVersion 29


import androidx.documentfile.provider.DocumentFile;

包括在内。


它编译成功。


我的应用程序有


compileSdkVersion 21

buildToolsVersion '28.0.3'

minSdkVersion 21

targetSdkVersion 26

但我看到方法名称在


DocumentContracts.copyDocument()


DocumentContracts.removeDocument()

是红色的(但它们属于 API 级别 19)。


如果我包括


import androidx.documentfile.provider.DocumentFile;

我看到


documentfile

是红色的。


请注意,自动完成适用于


DocumentsContract

并向我展示了 SAF 的许多方法。


此外,我看到不再需要某些例外情况,例如


renameDocument()

或者


createDocument()

被使用。


怎么了?解决方法是什么?


慕神8447489
浏览 130回答 2
2回答

慕的地8271018

你的应用程序有minSdkVersion 21(=应用程序承诺在 android-21 和更高版本上运行)而你的库有minSdkVersion 25(=库告诉它不能在 android-24 或更早版本上运行)所以你的 21-app 不能使用你的 25-lib

MMTTMM

似乎这样很好:compileSdkVersion 29buildToolsVersion '28.0.3'minSdkVersion 25targetSdkVersion 29和dependencies {compile 'com.android.support:support-v4:28.0.0'}
随时随地看视频慕课网APP

相关分类

Java
我要回答