Qt,Android:没有Acrobat Reader的QDesktopServices :: openUrl(QUrl :: fromLocalFile(“...... pdf”)) - 崩溃

时间:2013-09-13 12:58:15

标签: android qt pdf

Hy all!

我尝试过很多东西,但没有任何效果。

情况: 我正在下载PDF文件(位置:/ storage / sdcard0 / MyFolder)。

onDownloadFinished - 我正在打开.pdf。

它在Windows上运行 - 没有任何问题。

它使用Adobe Reader在Android上运行。

但是没有Adobe Reader - 它不适用于Android。我不知道为什么。

DownloadRequestedFile( requestParam, PersistentData::LOCAL_FILE_PATH, [](){

    QDesktopServices::openUrl( QUrl::fromLocalFile( PersistentData::LOCAL_FILE_PATH ) );
});

这是应该打开文件的CommandLine

这是错误日志

E/AndroidRuntime(24835): FATAL EXCEPTION: Thread-1269
E/AndroidRuntime(24835): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=file:///storage/sdcard0/MyFolder/MyPDF.pdf }
E/AndroidRuntime(24835):    at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1545)
E/AndroidRuntime(24835):    at android.app.Instrumentation.execStartActivity(Instrumentation.java:1416)
E/AndroidRuntime(24835):    at android.app.Activity.startActivityForResult(Activity.java:3351)
E/AndroidRuntime(24835):    at android.app.Activity.startActivityForResult(Activity.java:3312)
E/AndroidRuntime(24835):    at android.app.Activity.startActivity(Activity.java:3522)
E/AndroidRuntime(24835):    at android.app.Activity.startActivity(Activity.java:3490)
E/AndroidRuntime(24835):    at org.qtproject.qt5.android.QtNative.openURL(QtNative.java:115)
E/AndroidRuntime(24835):    at dalvik.system.NativeStart.run(Native Method)

也许有人能够帮助我或给我一个暗示? :)

1 个答案:

答案 0 :(得分:0)

也许它就像错误信息中描述的一样简单:

找不到处理意图的活动

因此,如果没有安装Adobe Reader,则没有其他应用程序可以显示pdf文件。 Thare在这里也有相关的讨论:

Android: Activity not found exception on some devices, when trying to open local HTML - file in browser

在这种情况下,您必须使用QAndroidJniObject :: methods。

另一个解决方案 - 检测到权限问题:

https://forum.qt.io/topic/44859/solved-qt-on-android-open-an-external-file