sexta-feira, 12 de julho de 2019
ERROR: Manifest merger failed: Attribute application
Solução para os erros abaixo:
Ao configurar um bloco de anúncio do AdMob, você pode receber as mensagens de erros abaixo, quando for adicionar a dependência "implementation 'com.google.android.gms:play-services-ads:18.1.0'" no arquivo build.gradle:
"ERROR: Manifest merger failed: Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91 is also present at [androidx.core:core:1.0.0] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).
Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:8:5-41:19 to override."
"Dependencies using groupId com.android.support and androidx.* can not be combined but found IdeMavenCoordinates{myGroupId='com.android.support', myArtifactId='support-vector-drawable', myVersion='28.0.0', myPacking='aar', myClassifier='null'} and IdeMavenCoordinates{myGroupId='androidx.core', myArtifactId='core', myVersion='1.0.0', myPacking='aar', myClassifier='null'} incompatible dependencies less... (Ctrl+F1)
Inspection info:There are some combinations of libraries, or tools and libraries, that are incompatible, or can lead to bugs. One such incompatibility is compiling with a version of the Android support libraries that is not the latest version (or in particular, a version lower than your targetSdkVersion). Issue id: GradleCompatible"
Esses erros podem ocorrer porque a dependência que você estar configurando no seu projeto faz parte do novo pacote do AndroidX, por esse motivo você pode receber diversos erros no seu projeto.
Para solucionar todos os problemas, você vai precisar fazer a migração do seu projeto. Vide no vídeo a seguir como realizar esse processo ou acesse o link para acessar a página do Developers do Google.
Ao configurar um bloco de anúncio do AdMob, você pode receber as mensagens de erros abaixo, quando for adicionar a dependência "implementation 'com.google.android.gms:play-services-ads:18.1.0'" no arquivo build.gradle:
"ERROR: Manifest merger failed: Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91 is also present at [androidx.core:core:1.0.0] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).
Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:8:5-41:19 to override."
"Dependencies using groupId com.android.support and androidx.* can not be combined but found IdeMavenCoordinates{myGroupId='com.android.support', myArtifactId='support-vector-drawable', myVersion='28.0.0', myPacking='aar', myClassifier='null'} and IdeMavenCoordinates{myGroupId='androidx.core', myArtifactId='core', myVersion='1.0.0', myPacking='aar', myClassifier='null'} incompatible dependencies less... (Ctrl+F1)
Inspection info:There are some combinations of libraries, or tools and libraries, that are incompatible, or can lead to bugs. One such incompatibility is compiling with a version of the Android support libraries that is not the latest version (or in particular, a version lower than your targetSdkVersion). Issue id: GradleCompatible"
Esses erros podem ocorrer porque a dependência que você estar configurando no seu projeto faz parte do novo pacote do AndroidX, por esse motivo você pode receber diversos erros no seu projeto.
Para solucionar todos os problemas, você vai precisar fazer a migração do seu projeto. Vide no vídeo a seguir como realizar esse processo ou acesse o link para acessar a página do Developers do Google.
Solução
Mais detalhes em Android Dev
segunda-feira, 6 de maio de 2019
Microsoft vai lançar o Windows Terminal - Um novo aplicativo de linha de comando para o Windows
A Microsoft vai lançar um novo aplicativo de linha de comando para o Windows, apelidado de Windows Terminal. Ele foi projetado para ser o local central para acesso a ambientes como o PowerShell, o Cmd e o Windows Subsystem for Linux (WSL). A Microsoft está adicionando suporte a várias guias juntamente com temas e personalização para desenvolvedores que desejam ajustar o aplicativo Terminal.
O Windows Terminal também suportará renderização de texto emoji e baseado em GPU. A Microsoft revelou o novo aplicativo do Windows Terminal durante a conferência de desenvolvedores Build da empresa hoje. A gigante do software está planejando disponibilizá-lo em meados de junho e marca os últimos esforços da Microsoft para melhorar o ambiente de desenvolvimento no Windows 10.
Fonte: theverge.com
quarta-feira, 27 de março de 2019
Fatal error: Uncaught Exception: FPDF error: Some data has already been output, can't send PDF file in..
Se você estiver usando a lib fpdf para gerar arquivos PDF e receber a mensagem de erro abaixo:
"Fatal error: Uncaught Exception: FPDF error: Some data has already been output, can't send PDF file in{...}"
Prossiga da seguinte forma para resolver o seu problema:
No arquivo gerado do pdf, procure pela linha $pdf->Output(); e em seguida adicionar o comando ob_start ();
O comando acima, vai iniciar o buffer e fazer com que o arquivo que foi gerado seja enviado para o seu browser.
A função do ob_start() é inicia o buffer e para limpar o buffer é o comando é ob_clean() e ob_end_clean(). O ob_end_clean() limpa o buffer e ainda exibe aquilo que foi armazenado nele.
By
Ricardo Oliveira
às
março 27, 2019
Um comentário:
"Fatal error: Uncaught Exception: FPDF error: Some data has already been output, can't send PDF file in{...}"
Prossiga da seguinte forma para resolver o seu problema:
No arquivo gerado do pdf, procure pela linha $pdf->Output(); e em seguida adicionar o comando ob_start ();
O comando acima, vai iniciar o buffer e fazer com que o arquivo que foi gerado seja enviado para o seu browser.
A função do ob_start() é inicia o buffer e para limpar o buffer é o comando é ob_clean() e ob_end_clean(). O ob_end_clean() limpa o buffer e ainda exibe aquilo que foi armazenado nele.
domingo, 17 de março de 2019
Execute o Windows 95 no Linux-Ubuntu
Aprenda o passo a passo para executar o Windows 95 no linux:
1. Faça o download da versão mais recente do windows95 para o Ubuntu:
Está disponível em formato zip, rpm e deb para diversos sistemas operacionais.
Vide mais detalhes aqui.
2. Depois que você tiver o download do arquivo, você pode instalá-lo usando o seguinte comando:
sudo apt install gdebi
sudo gdebi windows95_1.1.0_amd64.deb3. Para executar basta digitar no terminal o comando abaixo:
windows95
Vídeo com o passo a passo:
Mais detalhes sobre o projeto windows95 no github:
O arquivo de configuração padrão do nginx - default
/etc/nginx/sites-available/default
##
# You should look at the following URL's in order to grasp a solid understanding
# of Nginx configuration files in order to fully unleash the power of Nginx.
# http://wiki.nginx.org/Pitfalls
# http://wiki.nginx.org/QuickStart
# http://wiki.nginx.org/Configuration
#
# Generally, you will want to move this file somewhere, and start with a clean
# file but keep this around for reference. Or just disable in sites-enabled.
#
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
##
# Default server configuration
#
server {
listen 80 default_server;
listen [::]:80 default_server;
# SSL configuration
#
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
#
# Note: You should disable gzip for SSL traffic.
# See: https://bugs.debian.org/773332
#
# Read up on ssl_ciphers to ensure a secure configuration.
# See: https://bugs.debian.org/765782
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
# proxy_pass http://localhost:8080;
# proxy_http_version 1.1;
# proxy_set_header Upgrade $http_upgrade;
# proxy_set_header Connection 'upgrade';
# proxy_set_header Host $host;
# proxy_cache_bypass $http_upgrade;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# include snippets/fastcgi-php.conf;
#
# # With php7.0-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# # With php7.0-fpm:
# fastcgi_pass unix:/run/php/php7.0-fpm.sock;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# Virtual Host configuration for example.com
#
# You can move that to a different file under sites-available/ and symlink that
# to sites-enabled/ to enable it.
#
#server {
# listen 80;
# listen [::]:80;
#
# server_name example.com;
#
# root /var/www/example.com;
# index index.html;
#
# location / {
# try_files $uri $uri/ =404;
# }
#}
By
Ricardo Oliveira
às
março 17, 2019
Nenhum comentário:
##
# You should look at the following URL's in order to grasp a solid understanding
# of Nginx configuration files in order to fully unleash the power of Nginx.
# http://wiki.nginx.org/Pitfalls
# http://wiki.nginx.org/QuickStart
# http://wiki.nginx.org/Configuration
#
# Generally, you will want to move this file somewhere, and start with a clean
# file but keep this around for reference. Or just disable in sites-enabled.
#
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
##
# Default server configuration
#
server {
listen 80 default_server;
listen [::]:80 default_server;
# SSL configuration
#
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
#
# Note: You should disable gzip for SSL traffic.
# See: https://bugs.debian.org/773332
#
# Read up on ssl_ciphers to ensure a secure configuration.
# See: https://bugs.debian.org/765782
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
# proxy_pass http://localhost:8080;
# proxy_http_version 1.1;
# proxy_set_header Upgrade $http_upgrade;
# proxy_set_header Connection 'upgrade';
# proxy_set_header Host $host;
# proxy_cache_bypass $http_upgrade;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# include snippets/fastcgi-php.conf;
#
# # With php7.0-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# # With php7.0-fpm:
# fastcgi_pass unix:/run/php/php7.0-fpm.sock;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# Virtual Host configuration for example.com
#
# You can move that to a different file under sites-available/ and symlink that
# to sites-enabled/ to enable it.
#
#server {
# listen 80;
# listen [::]:80;
#
# server_name example.com;
#
# root /var/www/example.com;
# index index.html;
#
# location / {
# try_files $uri $uri/ =404;
# }
#}
ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded
Recentemente, fui fazer uma pequena alteração no meu banco de dados, para mudar as permissões de um determinado usuário e acabei perdendo o acesso ao banco.
Depois de executar o comando, mencionado acima, comecei a receber uma mensagem informando a tabela de usuário estaria corrompida e daí pra frente eu não conseguia fazer mais nenhuma alteração no meu banco de dados e quando tentava entra no mysql, recebia a seguinte mensagem de erro: "ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded"
Pesquisando sobre unix_socket na internet descobrimos que ele é um plug-in de autenticação que permite usar as credenciais do sistema operacional para se conectar ao MySQL/MariaDB. Ele faz isso por meio do arquivo de soquete local que é definido pela variável do sistema de soquete.
Host: Sistema: Ubuntu 18.04.2 LTS - 64 bits
CPU: Intel® Core™ i5-4460 CPU @ 3.20GHz × 4
Análise do problema:
O problema aconteceu depois da repetição de um simples comando: GRANT SELECT, INSERT, UPDATE ON dbsystemmyimei.* TO usermyimeico;Depois de executar o comando, mencionado acima, comecei a receber uma mensagem informando a tabela de usuário estaria corrompida e daí pra frente eu não conseguia fazer mais nenhuma alteração no meu banco de dados e quando tentava entra no mysql, recebia a seguinte mensagem de erro: "ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded"
Pesquisando sobre unix_socket na internet descobrimos que ele é um plug-in de autenticação que permite usar as credenciais do sistema operacional para se conectar ao MySQL/MariaDB. Ele faz isso por meio do arquivo de soquete local que é definido pela variável do sistema de soquete.
Mais detalhes em mariadb.
CPU: Intel® Core™ i5-4460 CPU @ 3.20GHz × 4
Memória: 8GB
2. Navegue para a pasta /var/run
3. Agora faça o backup :
4. Pare o serviço mysql
5. Agora vamos restaurar o backup
6. Inicie o mysql no modo seguro
7 . Em seguida, efetue login no mysql como root:
8. Confira se o plugin de autenticação está configurado para o usuário root:
Você pode ver que ele está usando o plug-in unix_socket
9. Para mudar para o plug-in mysql_native_password, execute o seguinte comando:
10. Agora é só sair do mysql modo segurança:
11. Pare o modo segurança
12. Inicie o mysql ou mariadb, novamente
13. Agora é só fazer o login com sua senha normal:
Problema resolvido!
Solução
Antes de resolvermos esse problema, será preciso fazer o backup da pasta mysql porque, por algum motivo, ainda desconhecido, o mysql.sock é deletado toda vez que o serviço mysql é parado e o mysqld_safe não pode criá-lo novamente. Por isso, para contornarmos esse problema, é preciso fazermos o backup da pasta sock e restaurar antes de iniciar o mysqld_safe.
Passo a passo:
Essa solução pode ser aplicada no mysql ou mariadb1. Se o mysql ou mariadb estiver parado, inicia com o seguinte comando:
sudo service mysql start
2. Navegue para a pasta /var/run
cd /var/run
3. Agora faça o backup :
sudo cp -rp ./mysqld ./mysqld.bak
4. Pare o serviço mysql
sudo service mysql stop
5. Agora vamos restaurar o backup
sudo mv ./mysqld.bak ./mysqld
6. Inicie o mysql no modo seguro
sudo mysqld_safe --skip-grant-tables --skip-networking &
7 . Em seguida, efetue login no mysql como root:
mysql -u root
8. Confira se o plugin de autenticação está configurado para o usuário root:
select Host,User,plugin from mysql.user where User='root';
Você pode ver que ele está usando o plug-in unix_socket
9. Para mudar para o plug-in mysql_native_password, execute o seguinte comando:
update mysql.user set plugin='mysql_native_password';
10. Agora é só sair do mysql modo segurança:
quit;
11. Pare o modo segurança
sudo kill -9 $(pgrep mysql)
12. Inicie o mysql ou mariadb, novamente
sudo systemctl start mysql
13. Agora é só fazer o login com sua senha normal:
mysql -u root -p
Problema resolvido!
Vide o passo a passo em vídeo
sexta-feira, 15 de março de 2019
Como trocar a porta padrão da Área de Trabalho Remota do Windows-RDP
Se você estiver precisando trocar a porta padrão do serviço RDP do Windows, basta acessar a chave de registro: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp procurar pela chave PortNumber e trocar o número da porta; ou siga os passo do vídeo abaixo:
By
Ricardo Oliveira
às
março 15, 2019
Nenhum comentário:



