我正在使用iTextG作为Android应用程序。 我的目标是从现有的pdf文件中读取以供日后操作等。 我想读一个名为“Chemistry.pdf”的文件,它放在我的资源文件夹中。 我使用以下代码(尝试)阅读pdf
AssetManager assetManager = getAssets();
InputStream istr = null;
try
{
istr =(InputStream) assetManager.open("Chemistry.pdf");
Log.d("OK", "done");
}
catch (FileNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
当我执行代码时,应用程序崩溃了。 如果资产不起作用,我应该在哪里包含pdf文件(在应用程序内)? 出了什么问题?
P.S。 我收到这些错误(还有11个)
03-28 15:28:52.455:E / AndroidRuntime(918):致命异常:主03-28 15:28:52.455:E / AndroidRuntime(918):java.lang.RuntimeException: 无法开始活动 ComponentInfo {com.example.teest / com.example.teest.MainActivity}: java.lang.ClassCastException: android.content.res.AssetManager $ AssetInputStream无法强制转换为 com.itextpdf.text.pdf.codec.Base64 $ InputStream 03-28 15:28:52.455: E / AndroidRuntime(918):at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180) 03-28 15:28:52.455:E / AndroidRuntime(918):at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 03-28 15:28:52.455:E / AndroidRuntime(918):at android.app.ActivityThread.access $ 600(ActivityThread.java:141)03-28 15:28:52.455:E / AndroidRuntime(918):at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1234) 03-28 15:28:52.455:E / AndroidRuntime(918):at android.os.Handler.dispatchMessage(Handler.java:99)03-28 15:28:52.455:E / AndroidRuntime(918):at android.os.Looper.loop(Looper.java:137)03-28 15:28:52.455: E / AndroidRuntime(918):at android.app.ActivityThread.main(ActivityThread.java:5039)03-28 15:28:52.455:E / AndroidRuntime(918):at java.lang.reflect.Method.invokeNative(Native Method)03-28 15:28:52.455:E / AndroidRuntime(918):at java.lang.reflect.Method.invoke(Method.java:511)03-28 15:28:52.455: E / AndroidRuntime(918):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:793) 03-28 15:28:52.455:E / AndroidRuntime(918):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)03-28 15:28:52.455:E / AndroidRuntime(918):at dalvik.system.NativeStart.main(Native Method)03-28 15:28:52.455: E / AndroidRuntime(918):引起:java.lang.ClassCastException: android.content.res.AssetManager $ AssetInputStream无法强制转换为 com.itextpdf.text.pdf.codec.Base64 $ InputStream 03-28 15:28:52.455: E / AndroidRuntime(918):at com.example.teest.MainActivity.onCreate(MainActivity.java:30)03-28 15:28:52.455:E / AndroidRuntime(918):at android.app.Activity.performCreate(Activity.java:5104)03-28 15:28:52.455:E / AndroidRuntime(918):at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 03-28 15:28:52.455:E / AndroidRuntime(918):at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
解决: 该错误是由于未初始化的变量引起的。