java - 致命异常 : java. lang.IllegalArgumentException fd 只能在 Android Q 中的 PrintAdapter 类的 onwrite() 中为 null

标签 java android printing android-10.0 android-print-manager

当我在 Android Q 设备上测试打印 PDF 功能时,我突然遇到了这个问题。它在 Android P 之前一直运行良好。我尝试在互联网上寻找解决方案,但没有用。任何帮助都会很好。

最佳答案

我在升级到 API 级别 31 时遇到了这个问题。

这是因为在我的 pdfprint 类中,有一行代码带有 :

if (file.createNewFile()) {
    return ParcelFileDescriptor.open(file, 

ParcelFileDescriptor.MODE_READ_WRITE);

通过添加在创建文件之前删除文件的代码,它工作正常

if (file.exists()) file.delete();

if file.createNewFile()
    return ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_WRITE);

我使用的代码是基于我在 Internet 上找到的代码,所以我没有花时间清理它,但它解决了我的问题。

关于java - 致命异常 : java. lang.IllegalArgumentException fd 只能在 Android Q 中的 PrintAdapter 类的 onwrite() 中为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63615013/

相关文章:

java - 为什么@PostConstruct 不起作用?

android - 如何在横向模式和纵向模式之间使用 2 个不同的背景

vb.net - 我打印了包含多个 "\"的文本,但 "\S"变成了 "1"

java - Gradle 忽略从工件 pom.xml 检索时提供的配置的传递依赖性

java - 为什么我的正则表达式匹配每个字符?

java - 我如何正确地抽象这个

c - 日期打印和扫描

android - 在 Android 中突出显示 Drawable 上的边缘

android - 如何在 phonegap android 中启用多点触控手势?

java - JTable可以通过用户拖动鼠标来调整大小吗