j'ai un gros soucis avec une extension native pour android
je veux déziper un fichier
voilà mon code java
File f = new File("chemin de mon fichier");
File outputDir = new File ("dossier de sortie");
ZipHelper.unzip(f, outputDir);
File outputDir = new File ("dossier de sortie");
ZipHelper.unzip(f, outputDir);
import java.util.zip.*;
import java.io.*;
import java.util.Enumeration;
import org.apache.commons.io.IOUtils;
import android.util.Log;
public class ZipHelper
{
static public void unzip(File archive, File outputDir)
{
try {
Log.d("control","ZipHelper.unzip() - File: " + archive.getPath());
ZipFile zipfile = new ZipFile(archive);
for (Enumeration e = zipfile.entries(); e.hasMoreElements(); ) {
ZipEntry entry = (ZipEntry) e.nextElement();
unzipEntry(zipfile, entry, outputDir);
}
}
catch (Exception e) {
Log.d("control","ZipHelper.unzip() - Error extracting file " + archive+": "+ e);
}
}
static private void unzipEntry(ZipFile zipfile, ZipEntry entry, File outputDir) throws IOException
{
if (entry.isDirectory()) {
createDirectory(new File(outputDir, entry.getName()));
return;
}
File outputFile = new File(outputDir, entry.getName());
if (!outputFile.getParentFile().exists()){
createDirectory(outputFile.getParentFile());
}
Log.d("control","ZipHelper.unzipEntry() - Extracting: " + entry);
BufferedInputStream inputStream = new BufferedInputStream(zipfile.getInputStream(entry));
BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream(outputFile));
try {
IOUtils.copy(inputStream, outputStream);
}
catch (Exception e) {
Log.d("control","ZipHelper.unzipEntry() - Error: " + e);
}
finally {
outputStream.close();
inputStream.close();
}
}
static private void createDirectory(File dir)
{
Log.d("control","ZipHelper.createDir() - Creating directory: "+dir.getName());
if (!dir.exists()){
if(!dir.mkdirs()) throw new RuntimeException("Can't create directory "+dir);
}
else Log.d("control","ZipHelper.createDir() - Exists directory: "+dir.getName());
}
}
import java.io.*;
import java.util.Enumeration;
import org.apache.commons.io.IOUtils;
import android.util.Log;
public class ZipHelper
{
static public void unzip(File archive, File outputDir)
{
try {
Log.d("control","ZipHelper.unzip() - File: " + archive.getPath());
ZipFile zipfile = new ZipFile(archive);
for (Enumeration e = zipfile.entries(); e.hasMoreElements(); ) {
ZipEntry entry = (ZipEntry) e.nextElement();
unzipEntry(zipfile, entry, outputDir);
}
}
catch (Exception e) {
Log.d("control","ZipHelper.unzip() - Error extracting file " + archive+": "+ e);
}
}
static private void unzipEntry(ZipFile zipfile, ZipEntry entry, File outputDir) throws IOException
{
if (entry.isDirectory()) {
createDirectory(new File(outputDir, entry.getName()));
return;
}
File outputFile = new File(outputDir, entry.getName());
if (!outputFile.getParentFile().exists()){
createDirectory(outputFile.getParentFile());
}
Log.d("control","ZipHelper.unzipEntry() - Extracting: " + entry);
BufferedInputStream inputStream = new BufferedInputStream(zipfile.getInputStream(entry));
BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream(outputFile));
try {
IOUtils.copy(inputStream, outputStream);
}
catch (Exception e) {
Log.d("control","ZipHelper.unzipEntry() - Error: " + e);
}
finally {
outputStream.close();
inputStream.close();
}
}
static private void createDirectory(File dir)
{
Log.d("control","ZipHelper.createDir() - Creating directory: "+dir.getName());
if (!dir.exists()){
if(!dir.mkdirs()) throw new RuntimeException("Can't create directory "+dir);
}
else Log.d("control","ZipHelper.createDir() - Exists directory: "+dir.getName());
}
}
je place le fichier commons-io-2.4.jar (que j'ai récupérer à l'adresse http://commons.apach...download_io.cgi) dans le dossier lib d'eclipse
si je fais une application Android classique, ça fonctionne impec
si je fais une extension native ça plante mon appli
LogCat d'eclipse me retourne
Citation
NoClassDefFoundError: org.apache.comons.io.IOUtils.copy
si quelqu'un sait d'où peut provenir le pb
merci de votre aide