2012-11-19 39 views
0

我在iText中創建PDF文件時出現問題。它總是崩潰,但此錯誤不斷出現在日誌中的貓:iText:無法在android中創建PDF文件

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 ..:| |

回答

2

只有三個原因,你永遠不會得到這個錯誤:

  1. 類真的不存在。如果您使用的是官方示例中的代碼並獲取該代碼,請確保您具有庫的最新版本
  2. 您尚未將jar添加到您的構建路徑。要解決這個問題,請右鍵單擊Eclipse中的jar,然後執行構建路徑►添加到構建路徑。
  3. 您的jar不在/ libs文件夾中。當你將jar添加到構建路徑時會發生這種情況,但ADT的新版本需要它在/ libs中。把它放在那裏並重新添加到構建路徑。

大多數情況下會出現此類錯誤,因爲ADT的新版本要求所有外部jar都位於libs文件夾中。您的同事可能與您的版本不同,因此錯誤。

就你而言,簡單地將所有必需的jar文件從itext-5.3.4移動到libs

+1

謝謝你!我把必要的jar文件移動到了'libs'中,並且製作了這個技巧.. :)再次感謝! – jcAmats