存储访问框架 - 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
我想为我的应用添加存储访问框架支持。
我为一些 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