Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android


 
Herramientas
  #1  
Viejo 09/10/13, 11:05:46
Avatar de mimadrid2020
mimadrid2020 mimadrid2020 no está en línea
Usuario novato en la web
Mensajes: 4
 
Fecha de registro: oct 2013
Mensajes: 4
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Junrar

hola a todos, este es mi primer mensaje en este foro, veo que tiene bastante movimiento y que hay gente que sabe bastante de programación android, a ver si hay suerte y me podeis ayudar.

Estoy utilizando la librería JUNRAR para abrir archivos RAR, y para obtener la lista de entries de mi archivo utilizo una función (bueno, en C se llama función, en android ¿Cómo se llama?), que bajé del GITGUB, es la siguiente:

public List<String> getPageList(){
String[] ary = unrar.getEntries(mArcPath,".jpg,.png,.jpeg,.gif");
if(ary == null) return null;


List<String> pageList = Arrays.asList(ary);


if(pageList.size() > 0){
Collections.sort(pageList); //Sort the page names
return pageList;
}


return null;
}

El caso es que me da un cierre inesperado de mi aplicación, el error viene de la línea:
String[] ary = unrar.getEntries(mArcPath,".jpg,.png,.jpeg,.gif");
donde "mArcPath" contiene la ruta, nombre de archivo, y está correcto, he mostrado por pantalla este parámetro para asegurarme.
Entonces, no veo que estoy haciendo mal, a ver si alguien me ayuda a arreglar esto o me sugiere un método alternativo para conseguir los entries de mi archivo rar.
Gracias amigos.
Responder Con Cita


  #2  
Viejo 09/10/13, 12:32:14
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
Por más que he buscado no he encontrado ninguna librería que se ajuste a las especificaciones que has puesto, la única "junrar" que he encontrado con un método (se llaman así) getEntries es un método sin parámetros.

Suponiendo que estés usando la librería correctamente, prueba poniendo esto delante de mArcPath: "file://". Algunos dispositivos Android no encuentran la ruta si no se lo indicas así en la URI.
Responder Con Cita
  #3  
Viejo 09/10/13, 12:47:39
Avatar de mimadrid2020
mimadrid2020 mimadrid2020 no está en línea
Usuario novato en la web
Mensajes: 4
 
Fecha de registro: oct 2013
Mensajes: 4
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
El código que puse más arriba la saque de aquí:
https://github.com/sketchpunk/openco.../ComicRar.java

ahí se ve que se le envía 2 parámetros.

Y el getEntries está declarado así:
public static native String[] getEntries(String arcPath,String extList);

Por cierto, de donde puedo sacar documentación sobre la JUNRAR?

Última edición por mimadrid2020 Día 09/10/13 a las 12:52:35
Responder Con Cita
  #4  
Viejo 13/10/13, 12:10:19
Avatar de mimadrid2020
mimadrid2020 mimadrid2020 no está en línea
Usuario novato en la web
Mensajes: 4
 
Fecha de registro: oct 2013
Mensajes: 4
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Hola amigos y amigas, sigo peleándome con la librería junrar, y tengo un par de preguntas:
¿Porqué no se puede trabajar con archivos rar de manera nativa?, como se hace con los archivos zip, ¿porqué hay que hay que recurrir a librerías externas?. Otra cosa, necesito un código que dándole el nombre del archivo rar, y el nombre del archivo que queremos descomprimir, nos lo devuelva en un InputStream, ¿conocéis algún método para esto ?.
Responder Con Cita
  #5  
Viejo 13/10/13, 13:16:28
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
Porque el formato ZIP es libre, mientras que el formato RAR es propietario.

En cuanto a la pregunta técnica, tendrás que jugar con la librería, como tu mismo has dicho al no pertenecer a la API oficial de Android no hay un código estándar para hacerlo. Según la librería de RAR que uses se hará de una forma.
Responder Con Cita
  #6  
Viejo 25/10/13, 17:08:23
Avatar de mimadrid2020
mimadrid2020 mimadrid2020 no está en línea
Usuario novato en la web
Mensajes: 4
 
Fecha de registro: oct 2013
Mensajes: 4
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Al final leo el archivo con getInputStream(fh) donde fh contiene el filehead del archivo a decomprimir, y va bien si el archivo a decomprimir es una imagen pequeña, pero con imágenes grandes devuelve nulo... y no digo con imágenes mostruosas, con solo 300kb hay problemas... ¿Cómo se puede regular el tamaño asignado para un imputstream?
Con los archivos zip no hay problema también utilizo un getInputStream e incluso con la misma imagen (comprimida a zip) la extrae sin problemas.
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 20:27:25 (GMT +1)

Cookies settings
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007