【问题标题】:iText: having trouble creating a pdf file in androidiText:在 android 中创建 pdf 文件时遇到问题
【发布时间】:2012-11-19 17:07:53
【问题描述】:

iText 在 android 中创建 pdf 文件时遇到问题。它一直在崩溃,并且这个错误一直出现在 log cat 中:

java.lang.NoClassDefFoundError: com.itextpdf.text.Document

这是我的 java 文件:

import java.io.FileNotFoundException;
import java.io.FileOutputStream;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;

public class MainActivity extends Activity {

public static Button button;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    button = (Button) findViewById(R.id.Submit);

    button.setOnClickListener(new OnClickListener() 
    {           
        public void onClick(View arg0) 
        {
            // TODO Auto-generated method stub

            toPDF();

        }
    });
}

public void toPDF(){

    Document document=new Document();
    try {
        PdfWriter.getInstance(document,new FileOutputStream("try.pdf"));
        document.open();
        document.add(new Paragraph("Hello Android!! :)"));
        document.close();
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (DocumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
 }

我已经在 AndroidManifest.xml 中包含了<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

这是我的 .classpath..

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
     <classpathentry kind="src" path="src"/>
     <classpathentry kind="src" path="gen"/>
     <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
     <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
     <classpathentry kind="lib" path="C:/Users/joan/Documents/Eclipse Workspace/itext-5.3.4/itextpdf-5.3.4.jar"/>
     <classpathentry kind="lib" path="C:/Users/joan/Documents/Eclipse Workspace/itext-5.3.4/itextpdf-5.3.4-javadoc.jar"/>
     <classpathentry kind="lib" path="C:/Users/joan/Documents/Eclipse Workspace/itext-5.3.4/itextpdf-5.3.4-sources.jar"/>
     <classpathentry kind="lib" path="C:/Users/joan/Documents/Eclipse Workspace/itext-5.3.4/itext-pdfa-5.3.4.jar"/>
     <classpathentry kind="lib" path="C:/Users/joan/Documents/Eclipse Workspace/itext-5.3.4/itext-pdfa-5.3.4-javadoc.jar"/>
     <classpathentry kind="lib" path="C:/Users/joan/Documents/Eclipse Workspace/itext-5.3.4/itext-pdfa-5.3.4-sources.jar"/>
     <classpathentry kind="lib" path="C:/Users/joan/Documents/Eclipse Workspace/itext-5.3.4/itext-xtra-5.3.4.jar"/>
     <classpathentry kind="lib" path="C:/Users/joan/Documents/Eclipse Workspace/itext-5.3.4/itext-xtra-5.3.4-javadoc.jar"/>
     <classpathentry kind="lib" path="C:/Users/joan/Documents/Eclipse Workspace/itext-5.3.4/itext-xtra-5.3.4-sources.jar"/>
     <classpathentry kind="output" path="bin/classes"/>
</classpath>

我也尝试插入 SD 卡,因为有人说这可能是问题,但它仍然崩溃了......

希望任何人都可以帮助我.. 我是 android 新手.. :|

【问题讨论】:

    标签: android pdf itext


    【解决方案1】:

    您会收到此错误的原因只有三个:

    1. 该类确实不存在。如果您使用官方示例中的代码并获得此代码,请确保您拥有最新版本的库
    2. 您尚未将 jar 添加到构建路径中。要解决此问题,请右键单击 Eclipse 中的 jar,然后执行 Build Path ► Add to Build Path。
    3. 您的 jar 不在 /libs 文件夹中。当您将 jar 添加到构建路径时会发生这种情况,但较新版本的 ADT 需要它位于 /libs 中。将其放在那里并重新添加到构建路径中。

    大多数情况下,出现此类错误是因为较新版本的 ADT 要求所有外部 jar 都位于 libs 文件夹中。您的同事可能与您使用的版本不同,因此出现了错误。

    在您的情况下,只需将所有必要的 jar 文件从 itext-5.3.4 移动到 libs

    【讨论】:

    • 谢谢!我将必要的 jar 文件移到了 libs.. 中,这就成功了.. :) 再次感谢!
    猜你喜欢
    • 2012-06-05
    • 2012-10-16
    • 1970-01-01
    • 2012-02-23
    • 1970-01-01
    • 2022-01-15
    • 2018-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多