存储访问框架 - DocumentsContract 的某些方法在包含在我的 Android 应用程序中时未编译

Storage Access Framework - Some methods of DocumentsContract not compiled when included in my Android app

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

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

我用

将它添加到示例项目中
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()

被使用。

怎么了?修复方法是什么?

看来这个不错:

compileSdkVersion 29
buildToolsVersion '28.0.3'
minSdkVersion 25
targetSdkVersion 29

dependencies {
compile 'com.android.support:support-v4:28.0.0'
}

你的应用有 minSdkVersion 21(=应用承诺 运行 android-21 和更新)而你的库有 minSdkVersion 25(=库告诉它不能 运行 android-24 或更老)

所以你的 21-app 不能使用你的 25-lib