错误:无法找到或加载主类com.example.pdfone.MainActivity [英] Error: Could not find or load main class com.example.pdfone.MainActivity
问题描述
我在Android的新用户,我尝试查看利用iText JAR文件的PDF文件。
我的code是:
I'm new user in android and I try to view a pdf file using itext jar file. My code is:
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();
}
}
但是,当我运行这个程序,它给了我错误:无法找到或控制台加载主类com.example.pdfone.MainActivity
错误
我能做些什么?请帮帮我。谢谢你在前进
What can I do? Please help me. Thank you in advance
推荐答案
您需要先了解Android系统。
You need to learn Android first.
您类需要扩展Activity类。
Your class needs to extend Activity class.
和iText的只能创建PDF文件,查看是不可能的。阅读是可能的。使用Adobe Acrobat或任何其他PDF工具在Android中进行查看。
And iText can only create pdf file, viewing is not possible. Reading is possible. Use Adobe Acrobat or any other PDF tools in Android to view it.
样的解决方案是按照下面的PDF阅读和Android的写
Sample Solutions is as below for PDF Read and Write in Android
100%工作code截图如下,
100% Working Code Screenshots as below,
activity_main.xml中
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_gravity="center"
tools:context=".MainActivity" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textAlignment="center"
android:text="Android Read/Write File" />
<EditText
android:id="@+id/fname"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="File Name"
android:text="sample_pdf_file" />
<EditText
android:id="@+id/ftext"
android:layout_width="fill_parent"
android:layout_height="100px"
android:hint="File Text"
android:text="Hello World" />
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/btnwrite"
android:text="Write File" />
<EditText
android:id="@+id/fnameread"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="File Name"
android:text="sample_pdf_file" />
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/btnread"
android:text="Read File" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/filecon" />
</LinearLayout>
FileOperations.java
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
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中
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在正确的位置,如下,
Make sure you have the itextpdf-5.5.1.jar in the right location as below,
这篇关于错误:无法找到或加载主类com.example.pdfone.MainActivity的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!