terça-feira, 8 de dezembro de 2015

Android - esconder teclado - hide keyboard on activity start

Em algumas situações é necessário esconder o teclado ao iniciar uma activity, nesse caso, uma das soluções é configurar o arquivo AndroidManifest.xml a tag android:windowSoftInputMode:


 android:windowSoftInputMode="stateHidden"  />

Regards



segunda-feira, 23 de novembro de 2015

ANDROID - "facebook_app_id" is translated here but not found in default locale [ExtraTranslation]

Quando é feito a integração do Android com a API 4.x do Facebook, é necessário traduzir as mensagens para melhorar a comunicação de seu APP. Nesse caso são definidas as mensagens no arquivo string.xml no diretório "values-pt-rBR":

<string name="com_facebook_like_button_not_liked">Curtir</string>
<string name="com_facebook_like_button_liked">Curtiu</string>
<string name="com_facebook_loginview_log_out_button">Encerrar sessão Facebook</string>
<string name="com_facebook_loginview_log_in_button">Entrar</string>
<string name="com_facebook_loginview_log_in_button_long">Conectar-se ao Facebook</string>
<string name="com_facebook_loginview_logged_in_as">Autenticado como: %1$s</string>
<string name="com_facebook_loginview_logged_in_using_facebook">Autenticado com Facebook</string>
<string name="com_facebook_loginview_log_out_action">Sair</string>
<string name="com_facebook_loginview_cancel_action">Cancelar</string>
<string name="com_facebook_loading">Carregando...</string>
<string name="com_facebook_internet_permission_error_title">AndroidManifest Error</string>
<string name="com_facebook_internet_permission_error_message">WebView login requires INTERNET permission</string>
<string name="com_facebook_tooltip_default">New! You\'re in control - choose what info you want to share with apps.</string>
<string name="com_facebook_image_download_unknown_error">Unexpected error while downloading an image.</string>
<string name="com_facebook_share_button_text">Compartilhar</string>
<string name="com_facebook_send_button_text">Enviado</string>

Ao gerar a APK, pode ocorrer o seguinte erro:

Error:(21) Error: "facebook_app_id" is translated here but not found in default locale [ExtraTranslation]

Solução:
Basta definir o locale no resources do idioma onde foram traduzidas as mensagens:
<resources xmlns:tools="http://schemas.android.com/tools" tools:locale="pt-rBR">
...
</resources>


Regards

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




quinta-feira, 23 de abril de 2015

JAVA - JBOSS - WILDFLY - HABILITAR MODO DEBUG

Para habilitar o debug no JBOSS WILDFLY serão necessários os seguintes passos, a saber:

  • Abrir o arquivo {JBOSS_HOME}/domain/configuration/host.xml
  • Ir até a tag e adicionar os parâmetros em destaque:

    <servers>
        <server name="server-one" group="main-server-group">
<jvm name="default">
<jvm-options>
<option value="-agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=n"/>
</jvm-options>
</jvm>
        </server>
    </servers>
  • Efetuar o restart no JBOSS no profile "domain"

Regards

segunda-feira, 16 de março de 2015

JBOSS - WILDFLY - DEBUG MODE

Para habilitar o modo debug no JBOSS WildFly é necessário:

  • Editar o arquivo /JBOSS_HOME/bin/standalone.bat --ou standalone.sh
  • Alterar a linha set DEBUG_MODE=false para set DEBUG_MODE=true
Reiniciar o JBOSS.

Regards

terça-feira, 10 de fevereiro de 2015

Java/Android - Eclipse - Redefinição do Heap Memory

Tive um problema ao exportar uma APK do Android (No memory for Heap Size).
Para resolver, bastou redefinir a memória no arquivo eclipse.ini:

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20140603-1326
-product
org.eclipse.epp.package.java.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Xms512m
-Xmx1024m
-XX:+UseParallelGC
-XX:PermSize=256M
-XX:MaxPermSize=512M


[ ]'s