1
私のデータベースのための私の目的は、Apacheのpoiを使用してバックアップを生成するための私のコードですが、私は実行時にいくつかのエラーを表示します。アンドロイドのApacheのpoiのエラー
私はHSSFワークシートで始まり、シートを作成し、データベースから詳細を追加して、そのファイルをsdカードの特定のloactionに保存します。
HSSFWorkbook backup=new HSSFWorkbook();
HSSFSheet sheet=backup.createSheet("Contact_Backup");
Map<String, Object[]> data = new HashMap<String, Object[]>();
sq = md.getReadableDatabase();
Cursor mCursor = sq.rawQuery("SELECT * FROM "
+ MyDatabase.TABLE_NAME, null);
if (mCursor.moveToFirst()) {
do {
idbackup.add(mCursor.getString(mCursor.getColumnIndex(MyDatabase.KEY_ID)));
namebackup.add(mCursor.getString(mCursor.getColumnIndex(MyDatabase.KEY_NAME)));
numberbackup.add(mCursor.getString(mCursor.getColumnIndex(MyDatabase.KEY_NUM)));
addressbackup.add(mCursor.getString(mCursor.getColumnIndex(MyDatabase.KEY_ADDR)));
mailbackup.add(mCursor.getString(mCursor.getColumnIndex(MyDatabase.KEY_MAIL)));
} while (mCursor.moveToNext());
}
if (idbackup.size() != 0) {
int j = 2;
for (int i = 0; i < idbackup.size(); i++) {
data.put(String.valueOf(j), new Object[]{idbackup.get(i), namebackup.get(i), numberbackup.get(i), addressbackup.get(i), mailbackup.get(i)});
j++;
}
}
Set<String> keyset = data.keySet();
int rownum = 0;
for (String key : keyset) {
Row row = sheet.createRow(rownum++);
Object[] objArr = data.get(key);
int cellnum = 0;
for (Object obj : objArr) {
Cell cell = row.createCell(cellnum++);
if (obj instanceof Date)
cell.setCellValue((Date) obj);
else if (obj instanceof Boolean)
cell.setCellValue((Boolean) obj);
else if (obj instanceof String)
cell.setCellValue((String) obj);
else if (obj instanceof Double)
cell.setCellValue((Double) obj);
}
}
try {
File directory = new File("/sdcard/BulkMessenger/backups"); /*creating the file directory
directory.mkdir();
long date = System.currentTimeMillis();
SimpleDateFormat sdf = new SimpleDateFormat("MMM MM dd, yyyy h:mm a");
String dateString = sdf.format(date);
File file = new File(directory, dateString+"backupcontact.xls");
FileOutputStream out = new FileOutputStream(file);
backup.write(out);
out.close();
Toast.makeText(getApplicationContext(),"Successfully backup generated in backup",Toast.LENGTH_LONG).show();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
私のエラーログは、私が得たものという例外をFILENOTFOUNDことで以下に示します。
07-08 09:52:38.250 15615-15615/com.example.web03.bulkmessenger E/dalvikvm: Could not find class 'java.awt.font.FontRenderContext', referenced from method org.apache.poi.hssf.usermodel.HSSFSheet.autoSizeColumn
事前にお礼を申し上げます。
あなたはProGuardの –
@MaheshwarLigade buildTypesを有効にしていません{ リリース{ minifyEnabled } 偽 proguardFiles getDefaultProguardFile( 'ProGuardの-android.txt')、 'proguard-rules.pro'}あなたがヒットしている – Shellz
Apache POIがFont-sizeを計算するためにjava.awtからのクラスを使用する問題ですが、これらのクラスはAndroidでは使用できません。完全なスタックトレースを投稿できるので、この呼び出しがどこで行われたかを確認できますか? – centic