sábado, 17 de mayo de 2014

java.lang.IllegalStateException: Could not find a method Close(View) in the activity - Android

Muchos de nosotros estamos acostumbrados a poner un botón de cerrar en nuestras vistas, dicho botón, lo solemos vincular en el método OnClick con un método Close, como en la siguiente linea.
android:onClick="Close"
Esto nos lleva a escribir un método similar al siguiente:
    public void Close() {
        finish();
    }
Pero ese código nos lanzara un error de este tipo:
java.lang.IllegalStateException: Could not find a method Close(View) in the activity 
Esto es debido a que probablemente por las prisas hallamos olvidado que nuestro método necesita que se le pase una vista, por lo que el código correcto seria:
    public void Close(View view) {
        finish();
    }

viernes, 16 de mayo de 2014

you need to use a theme.appcompat theme (or descendant) with this activity - Android

En ocasiones podemos encontrarnos con un error como este:
unable to start activity componentinfo
.....
you need to use a theme.appcompat theme (or descendant) with this activity
esto es debido a que probablemente estemos usando un tema personalizado en una Activity, que en realidad es un ActionBarActivity, esta ultima clase necesita usar el tema appCompat, por lo que deberemos ir a nuestro manifest, y editar el Theme de la actividad a lo siguiente
android:theme="@style/Theme.AppCompat" >
Aunque también podemos hacer que nuestra actividad extienda de Activity en lugar de ActionBarActivity, para ello habría que cambiar
public class MainActivity extends ActionBarActivity {
por
public class MainActivity extends Activity {
Escogeremos en cada caso la opción que mas nos interese

miércoles, 14 de mayo de 2014

Acceder a recursos de un Fragment desde un Activity mediante findById - Android

Hoy os dejo algo que me ha llevado un buen rato.
Todos los que aprendimos o hicimos nuestros pinitos hace ya algun tiempo con Android aprendimos que para "linkar" un elemento de una activity a nuestro archivo java, para poder trabajar con el, ya sea un botón, un Text View o cualquier otra cosa accediamos con un codigo similar a este.
salida = (TextView)findViewById(R.id.textView1);
Esto mismo normalmente lo colocabamos en el onCreate de nuestro Activity, pero desde hace ya algun tiempo lo que se viene usando son los Fragment, un fragment viene siendo una parte de lo que se va a ver en el Activity, puede ser el 100% o una pequeña parte, asi un Activity, puede estar formado por 1 o mas Fragment, en resumidas cuentas eso es lo que es.

Pues bien el problema esta en que si desde nuestro Activity, intentamos llamar a un textView que esta en nuestro Fragment como en el ejemplo superior, nos dara un error de tiempo de ejecucion, y si lo bicheamos un poco, veremos que aunque R.id.textView1 tiene un valor hexadecimal, a nuestra variable Salida sigue con null, esto es debido a que desde nuestra Activity no podemos acceder a los elementos del Fragment, para ello deberemos ir a la clase PlaceHolderFragment que nos ha creado Eclipse, y llamarlo desde alli como en el codigo que os dejo a continuación

    /**
     * A placeholder fragment containing a simple view.
     */
    public static class PlaceholderFragment extends Fragment {
        public PlaceholderFragment() {
        }
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            View rootView = inflater.inflate(R.layout.fragment_main, container, false);
            entrada = (EditText)rootView.findViewById(R.id.numEntrada);
            salida = (TextView)rootView.findViewById(R.id.numSalida);
            return rootView;
        }
    }
Espero os sirva de ayuda

Tambien os dejo el ejemplo completo y funcionando
https://github.com/rogama/Android---vista-boton-fragment

asi era como se hacia sin los Fragment
https://github.com/rogama/Android/tree/master/MasVistas

viernes, 25 de abril de 2014

Tienda en blanco al cambiar de servidor - prestashop

Llevo una temporada migrando una web a otro servidor, hoy estaba con la parte de la tienda, la cual esta montada en Prestashop, he copiado todos los archivos al nuevo server, y la base de datos, pero para mi sorpresa me encontre con que al entrar a la web me carga una pagina en blanco


no puedo entrar ni al administrador, si tecleo la URL obtengo el mismo resultado, rebuscando por hay sugerian:

  • dar permisos a las carpetas
  • borrar carpeta cache
  • me asegurado que en la base de datos apunte al "nuevo dominio"
Pero Sigue sin funcionar

no es cosa del .htaccess ya que lo he renombrado y sigo con el mismo problema

Cambio el valor de:
define('_PS_MODE_DEV_', true);
estaba en false en el archivo config/defines.inc.php

Y me da error:
Fatal error: Uncaught Table '*****_2013.****_shop_url' doesn't exist
Asi que reimportare la base de datos.

Y Solucionado!!!

jueves, 24 de abril de 2014

Fatal error: Uncaught exception 'Mailchimp_ServerError_MethodUnknown' - Mailchimp - PHP

Despues Del error que describo en: http://www.rogamainformatica.es/2014/04/fatal-error-uncaught-exception.html me aparecio este otro:
Fatal error: Uncaught exception 'Mailchimp_ServerError_MethodUnknown' with message 'Unknown method "lists/*******"' in C:\xampp\htdocs\*******\dashboard\mailchimp\src\Mailchimp.php:340 Stack trace: #0 C:\xampp\htdocs\******\dashboard\mailchimp\src\Mailchimp.php(319): Mailchimp->castError(Array) #1 C:\xampp\htdocs\**********\dashboard\test.php(6): Mailchimp->call('lists/********', '') #2 {main} thrown inC:\xampp\htdocs\*******\dashboard\mailchimp\src\Mailchimp.php on line 340

Este ultimo es simplemente por como lo llamamos
estaba usando
$lista = $mailchimp->call('list/list');
print_r($lista);
en vez de
print_r($mailchimp->call('lists/list',''));

Fatal error: Uncaught exception 'Mailchimp_HttpError' - PHP - MailChimp

Hoy he tenido que pelearme con la API de MailChimp, y ... bueno, al menos en lo que se refiere a PHP, no he mirado como esta documentada para otros lenguajes, pero a lo que viene siendo PHP, si no usas algun framework tipo Zend o Simfony en tu proyecto estas un poco vendido, buscate la vida y peleate con el.

Entre otras cosas me encontrado con este error (en un post futuro, explicare como montala en tu proyecto)
Fatal error: Uncaught exception 'Mailchimp_HttpError' with message 'API call to lists/****** failed: SSL certificate problem: unable to get local issuer certificate' in C:\xampp\htdocs\*****\dashboard\mailchimp\src\Mailchimp.php:314 Stack trace: #0 C:\xampp\htdocs\*****\dashboard\test.php(6): Mailchimp->call('lists/*****', '') #1 {main} thrown in C:\xampp\htdocs\******\dashboard\mailchimp\src\Mailchimp.php on line 314
  1. Parece ser que simplemente no tenia certificado mi servidor, la solucion a esto es muy sencilla:
  2. Descargar y guardar en donde tengamos instalado el PHP en nuestro equipo el sigueinte archivo: http://curl.haxx.se/docs/caextract.html en mi caso la ruta es: C:\xampp\php\
  3. Escribir la sigueinte linea al final de nuestro PHP.inicurl.cainfo="C:\xampp\php\cacert.pem"
  4. Reiniciar nuestro apache
Fuente:
http://redwebturtle.blogspot.com.es/2013/09/mailchimp-api-v20-ssl-error-solution.html

sábado, 12 de abril de 2014

fatal: Out of memory, malloc failed (tried to allocate 3408305152 bytes) - GIT

Acabo de encontrarme con este error al intentar subir los cambios realizados durante el dia en uno de los proyectos que estoy llevando a cabo

fatal: Out of memory, malloc failed (tried to allocate 3408305152 bytes)

He leido por hay y me encontrado soluciones de este tipo
Roberto@PORTATIL /c/xampp/htdocs/(master)
$ git config pack.threads 1
Roberto@PORTATIL /c/xampp/htdocs/(master)
$ git config pack.deltaCacheSize 128
Roberto@PORTATIL /c/xampp/htdocs/(master)
$ git config pack.packSizeLimit 128
Roberto@PORTATIL /c/xampp/htdocs/(master)
$ git config pack.windowMemory 128m
Roberto@PORTATIL /c/xampp/htdocs/(master)
$ git config pack.packSizeLimit 128m
Roberto@PORTATIL /c/xampp/htdocs/(master)
$ git config pack.deltaCacheSize 128m
Roberto@PORTATIL /c/xampp/htdocs/(master)
$ git config core.packedGitLimit 128m
Roberto@PORTATIL /c/xampp/htdocs/(master)
$ git config core.packedGitWindowSize 128m
Roberto@PORTATIL /c/xampp/htdocs/(master)
$ git repack -adf
Counting objects: 74122, done.
Compressing objects: 100% (65322/65322), done.
Writing objects: 100% (74122/74122), done.
Total 74122 (delta 14795), reused 54739 (delta 0)

Pero al intentar subir los cambios me volvia a saltar (Push) el mismo error, por lo que he decidido indagar un poco, yo actualmente uso SourceTree, me parece una herramienta imprescindible, te deja ver el arbol de Commit con una facilidad pasmosa, de un solo vistazo ves todos los cambios en el tiempo que has hecho tu y tu equipo, y con un par de click, puedes hacer merge, subir o bajar cambios, resolver conflictos.... El sueño de cualquier persona que trabaje a diario con GIT, el caso es que si vas a Settings

En la parte inferior izquierda tienes un boton que pone Edit Config File, si le das, abres el archivo con el blog de notas, y lo borras por completo, te pedira que si quieres guardarlo, le dices que si, y cierras las ventanitas que se han habierto, haces Push, y como si ubiera sido magia, el problema se ha solucionado ;)

Espero que esto os sirva de ayuda, a mi me a dado un pequeño quebradero de cabeza, en unos dias espero subir imagenes a este post, para que sea mas intuitivo

martes, 8 de abril de 2014

Warning! Your PHP configuration limits the maximum number of fields allowed in a form - Prestashop

Warning! Your PHP configuration limits the maximum number of fields allowed in a form:
1000 for max_input_vars.
Please ask your hosting provider to increase the this limit to 2481 at least or edit the translation file manually.

Para solucionar este error de nuestro Prestashop deberemos cambiar en el php.ini dicho valor, eso es simplemente abrirlo el cual en nuestro equipo estara ubicado en :
C:\xampp\php

Cambiaremos el 1000 que viene por defecto por el valor que nos da el error u otro superior, finalizaremos
reiniciando apache

Otra opción, si esto no nos funciona, o si no tenemos acceso al php.ini es introducir
php_value max_input_vars 4000
en nuestro .htaccess
Un abrazo amigos

sábado, 5 de abril de 2014

POST git-receive-pack (chunked)

Aveces al hacer Push con Commit que integren archivos de gran tamaño; nos podremos encontrar con el siguiente error
POST git-receive-pack (chunked)
para solucionarlo, en la consola teclearemos
git config http.postBuffer 5924288000
y volveremos a intentar Push, con esto debería estar solucionado, si os sigue dando error, o cambia chunked por un dígito, volver a teclear en consola el mismo código, pero aumentando el número de buffer que hemos tecleado anteriormente por otro que sea mayor al que nos da el error

fuente:
http://stackoverflow.com/a/14594496

viernes, 4 de abril de 2014

Llevar el scroll abajo - JQuery

Os propongo un caso práctico relacionado con el último articulo que os escribí:
http://www.rogamainformatica.es/2014/04/obtener-el-alto-total-de-la-pagina.html

En el os explicaba como obtener el alto total de la pagina, para hacerlo un poco mas útil vamos a hacer que nuestra pagina nada mas cargar se desplace hasta la parte inferior.

Con estas 3 sencillas lineas podremos mover el scroll de nuestra página hasta abajo
$(document).ready(function($) {
     var WH = $(window).height();
      var SH =$(document).height();
     $('html, body').stop().animate({scrollTop: SH- WH});
}
y cambiando la última linea por

     $('html, body').stop().animate({scrollTop: SH- WH}.3000);

además la animaremos y veremos como va bajando sola durante 3 segundos.