错误:无法找到或加载主类 com.example.pdfone.MainActivity
Posted
技术标签:
【中文标题】错误:无法找到或加载主类 com.example.pdfone.MainActivity【英文标题】:Error: Could not find or load main class com.example.pdfone.MainActivity 【发布时间】:2014-07-13 18:01:30 【问题描述】:我是 android 的新用户,我尝试使用 itext jar 文件查看 pdf 文件。 我的代码是:
package com.example.pdfone;
public class MainActivity
public static final String RESULT = "Workspace/one.pdf";
public static void main(String[] args) throws DocumentException, IOException
Document document = new Document();
PdfWriter.getInstance(document, new FileOutputStream(RESULT));
document.open();
document.add(new Paragraph("Hello World!"));
document.close();
但是当我运行这个程序时,它给我Error: Could not find or load main class com.example.pdfone.MainActivity
控制台错误
我能做什么?请帮我。提前谢谢你
【问题讨论】:
在我下面的答案中添加了完整的 PDF 工作解决方案,如果有效,请将答案标记为已回答。它可以工作,我已经测试并附上了屏幕截图。 【参考方案1】:您需要先学习 Android。
你的类需要扩展 Activity 类。
而iText只能创建pdf文件,无法查看。阅读是可能的。使用 Adobe Acrobat 或 Android 中的任何其他 PDF 工具来查看它。
Android 中 PDF 读写的示例解决方案如下
100% 工作代码截图如下,
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_
android:layout_
android:orientation="vertical"
android:layout_gravity="center"
tools:context=".MainActivity" >
<TextView
android:layout_
android:layout_
android:gravity="center"
android:textAlignment="center"
android:text="Android Read/Write File" />
<EditText
android:id="@+id/fname"
android:layout_
android:layout_
android:hint="File Name"
android:text="sample_pdf_file" />
<EditText
android:id="@+id/ftext"
android:layout_
android:layout_
android:hint="File Text"
android:text="Hello World" />
<Button
android:layout_
android:layout_
android:id="@+id/btnwrite"
android:text="Write File" />
<EditText
android:id="@+id/fnameread"
android:layout_
android:layout_
android:hint="File Name"
android:text="sample_pdf_file" />
<Button
android:layout_
android:layout_
android:id="@+id/btnread"
android:text="Read File" />
<TextView
android:layout_
android:layout_
android:id="@+id/filecon" />
</LinearLayout>
FileOperations.java
package com.example.readwrite;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.StringWriter;
import android.util.Log;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.text.pdf.parser.PdfReaderContentParser;
import com.itextpdf.text.pdf.parser.SimpleTextExtractionStrategy;
import com.itextpdf.text.pdf.parser.TextExtractionStrategy;
public class FileOperations
public FileOperations()
public Boolean write(String fname, String fcontent)
try
String fpath = "/sdcard/" + fname + ".pdf";
File file = new File(fpath);
// If file does not exists, then create it
if (!file.exists())
file.createNewFile();
// step 1
Document document = new Document();
// step 2
PdfWriter.getInstance(document,
new FileOutputStream(file.getAbsoluteFile()));
// step 3
document.open();
// step 4
document.add(new Paragraph("Hello World!"));
document.add(new Paragraph("Hello World2!"));
// step 5
document.close();
Log.d("Suceess", "Sucess");
return true;
catch (IOException e)
e.printStackTrace();
return false;
catch (DocumentException e)
// TODO Auto-generated catch block
e.printStackTrace();
return false;
public String read(String fname)
BufferedReader br = null;
String response = null;
try
StringBuffer output = new StringBuffer();
String fpath = "/sdcard/" + fname + ".pdf";
PdfReader reader = new PdfReader(new FileInputStream(fpath));
PdfReaderContentParser parser = new PdfReaderContentParser(reader);
StringWriter strW = new StringWriter();
TextExtractionStrategy strategy;
for (int i = 1; i <= reader.getNumberOfPages(); i++)
strategy = parser.processContent(i,
new SimpleTextExtractionStrategy());
strW.write(strategy.getResultantText());
response = strW.toString();
catch (IOException e)
e.printStackTrace();
return null;
return response;
MainActivity.java
package com.example.readwrite;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity
EditText fname, fcontent, fnameread;
Button write, read;
TextView filecon;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fname = (EditText) findViewById(R.id.fname);
fcontent = (EditText) findViewById(R.id.ftext);
fnameread = (EditText) findViewById(R.id.fnameread);
write = (Button) findViewById(R.id.btnwrite);
read = (Button) findViewById(R.id.btnread);
filecon = (TextView) findViewById(R.id.filecon);
write.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View arg0)
// TODO Auto-generated method stub
String filename = fname.getText().toString();
String filecontent = fcontent.getText().toString();
FileOperations fop = new FileOperations();
fop.write(filename, filecontent);
if (fop.write(filename, filecontent))
Toast.makeText(getApplicationContext(),
filename + ".pdf created", Toast.LENGTH_SHORT)
.show();
else
Toast.makeText(getApplicationContext(), "I/O error",
Toast.LENGTH_SHORT).show();
);
read.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View arg0)
// TODO Auto-generated method stub
String readfilename = fnameread.getText().toString();
FileOperations fop = new FileOperations();
String text = fop.read(readfilename);
if (text != null)
filecon.setText(text);
else
Toast.makeText(getApplicationContext(), "File not Found",
Toast.LENGTH_SHORT).show();
filecon.setText(null);
);
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.readwrite"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="18" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.readwrite.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
确保 itextpdf-5.5.1.jar 位于以下正确位置,
【讨论】:
此代码在行动书中的 itext 中..我只是复制粘贴它..所以如果你有可能给我发送代码来阅读 pdf 文件。 您好 添加了完整的 PDF 工作解决方案,如果有效,请将答案标记为已回答。它可以工作,我已经测试并附上了屏幕截图。以上是关于错误:无法找到或加载主类 com.example.pdfone.MainActivity的主要内容,如果未能解决你的问题,请参考以下文章
IntelliJ IDEA 错误:无法找到或加载主类 GradleStart