我目前正在尝试使用动态交付来下载和安装一些 pdf 文件,并使用 barteksc 的 pdf 查看器 ( com.github.barteksc:android-pdf-viewer:2.8.2
) 打开它们。
当我的apk中有pdf文件时,一切正常,但现在我下载它们并通过动态交付安装它们,当我尝试打开它们时出现此错误
E/PDFView: 加载 pdf 错误 java.io.FileNotFoundException: Example.pdf at android.content.res.AssetManager.nativeOpenAsset(Native Method) at android.content.res.AssetManager.open(AssetManager.java:744) 在 android。 content.res.AssetManager.open(AssetManager.java:721) at com.github.barteksc.pdfviewer.util.FileUtils.fileFromAsset(FileUtils.java:37) at com.github.barteksc.pdfviewer.source.AssetSource.createDocument( AssetSource.java:39) 在 com.github.barteksc.pdfviewer.DecodingAsyncTask.doInBackground(DecodingAsyncTask.java:53) 在 com.github.barteksc.pdfviewer.DecodingAsyncTask.doInBackground(DecodingAsyncTask.java:25) 在 android.os.AsyncTask $2.call(AsyncTask.java:333) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 java.util.concurrent。ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 在 java.lang.Thread.run(Thread.java:764)
这将返回“已安装”
if (manager.getInstalledModules().contains("dynamicfeature")) {
statusText.setText("Installed");
} else {
statusText.setText("Feature not yet installed");
}
如果这会有所不同,我正在从不同的类安装模块,我在 Google 文档中看到了一些关于更新上下文的信息,但我无法弄清楚。
我还添加了
com.google.android.play.core.splitcompat.SplitCompatApplication
正如文档所说,仍然没有运气。
这是我用来查看 Pdf 文件的方法。当 pdf 位于基本应用程序的资产文件夹中时,它工作得很好,但现在 pdf 位于动态交付模块的资产文件夹中,它无法正常工作。
private void displayFromAsset(String assetFileName) {
String SAMPLE_FILE = getIntent().getStringExtra("PDF INTENT");
pdfFileName = assetFileName;
pdfView.fromAsset(SAMPLE_FILE)
.defaultPage(pageNumber)
.enableSwipe(true)
.swipeHorizontal(false)
.onPageChange(this)
.enableAnnotationRendering(true)
.onLoad(this)
.scrollHandle(new DefaultScrollHandle(this))
.load();