segunda-feira, 16 de novembro de 2015

ANDROID - REMOVER ACTIVITIES DA PILHA - Remove all the previous activities from the back stack

Em algumas situações é necessário remover as activities que estão na pilha. Nesse caso podemos utilizar os seguintes parâmetros:

Intent intent = new Intent(LoginNovoCidadaoActivity.this, ActionBarDrawerActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);

Nesse caso serão removidas as activities da pilha e redirecionado para a nova activity ActionBarDrawerActivity. Basicamente iremos remover o histórico de activities da pilha.

Regards

quarta-feira, 14 de outubro de 2015

ANDROID - JSON - ERROR - com.google.gson.JsonParseException: The JsonDeserializer

Ao fazer o parse de um JSON, estava ocorrendo o seguinte erro:

com.google.gson.JsonParseException: The JsonDeserializer com.google.gson.DefaultTypeAdapters$CollectionTypeAdapter@3211ceb3 failed to deserialize json object "Ocorreu" given the type java.util.ArrayList<meupackage.MinhaClasse>
            at com.google.gson.JsonDeserializerExceptionWrapper.deserialize(JsonDeserializerExceptionWrapper.java:64)
            at com.google.gson.JsonDeserializationVisitor.invokeCustomDeserializer(JsonDeserializationVisitor.java:92)
            at com.google.gson.JsonDeserializationVisitor.visitUsingCustomHandler(JsonDeserializationVisitor.java:80)
            at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:101)
            at com.google.gson.JsonDeserializationContextDefault.fromJsonPrimitive(JsonDeserializationContextDefault.java:85)
            at com.google.gson.JsonDeserializationContextDefault.deserialize(JsonDeserializationContextDefault.java:56)
            at com.google.gson.Gson.fromJson(Gson.java:551)
            at com.google.gson.Gson.fromJson(Gson.java:498)
            at com.google.gson.Gson.fromJson(Gson.java:467)
            at com.google.gson.Gson.fromJson(Gson.java:417)
            at meupackage.getJsonIndiceRotatividade(Helper.java:101)
            at meupackage.IndiceRotatividadeFragment.onTaskComplete(IndiceRotatividadeFragment.java:150)
            at meupackage.IndiceRotatividadeTask.onPostExecute(IndiceRotatividadeTask.java:86)
            at meupackage.IndiceRotatividadeTask.onPostExecute(IndiceRotatividadeTask.java:19)
            at android.os.AsyncTask.finish(AsyncTask.java:632)
            at android.os.AsyncTask.access$600(AsyncTask.java:177)
            at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:145)
            at android.app.ActivityThread.main(ActivityThread.java:5942)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195)

O problema estava no objeto que estava sendo trafegado. Ele deve obrigatóriamente ser serializável. Nesse caso, basta implementar a interface Serializable no modelo (VO / TO).

Regards




quinta-feira, 24 de setembro de 2015

ANDROID - "location provider requires ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission"

Ao utilizar o recurso de GPS e estiver  ocorrendo o erro descrito, significa que faltaram permissões a serem  adicionadas no AndroidManifest.xml:

   
   

Essas permissões serão apresentadas durante o processo de instalação.

Regards

sexta-feira, 18 de setembro de 2015

ANDROID - ANDROID STUDIO - Generating serialVersionUID

Um atalho importante para quem desenvolve em Java é gerar automaticamente o serialVersionUID. O Android Studio não permite gerar (modo default) através do atalho "Alt" + "Insert". Será necessário habilitar o recurso.
Para que esteja disponível na sequencia de atalhos, será necessário fazer algumas configurações na IDE, a saber:

  • Ir até o menu "File->Settings->Plugins"
  • Na busca (Browse repositories) localizar o item GenerateSerialVersionUID
  • Habilitar o item para torná-lo disponível
  • Será necessário reiniciar a IDE

Regards


quinta-feira, 10 de setembro de 2015

JBOSS - WILDFLY - ERRO AO FAZER DEPLOY - UndertowDeploymentInfoService

Ao fazer deploy de um pacote (war ou ear) ocorre o seguinte erro:

JBAS014777:   Services which failed to start:      service jboss.undertow.deployment.default-server.default-host."/project.api".UndertowDeploymentInfoService

Isso ocorre porque o JBOSS não encontrou a Servlet "AppConfig.java". Verifique as configurações no web.xml:

   
        mypackage.m.AppConfig
   
   
        mypackage.m.AppConfig
        /api/*
   
 

Regards



quinta-feira, 9 de julho de 2015

NODEJS - HelloWorld

1-Primeiro vamor criar o arquivo helloworld.js:

var http = require('http');
    http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello Node.JS!');
}).listen(8080);
console.log('Server running at http://localhost:8080/');

2-Rodar o comando no shell:
> node helloworld.js

3-Resultado na console do shell:
Server running at http://localhost:8080/

4-Rodar no browser:
http://localhost:8080/

Pronto, sua primeira aplicação em nodejs está pronta.

Regards




                                              





NODEJS - Instalando no openSuSe


Para instalar o NodeJs a partir da distribuição Linux openSuSe basta acessar o link:

https://software.opensuse.org/package/nodejs



Regards