Android SDK - Como corrigir o problema da R.java do eclipse no linux

Se ao criar seu primeiro projeto android com o adt-bundle-linux-x86-64 você se deparou com a mensagem:

[2013-11-02 22:33:05 - adb] Unexpected exception 'Cannot run program "/home/user/adt-bundle-linux-x86_64/sdk/platform-tools/adb": error=2, No such file or directory' while attempting to get adb version from

Então você veio ao lugar certo! Hoje mostrarei passo a passo como se deve fazer para corrigir isso.

Antes de tudo, esse problema é causado porque o adb está compilado para 32bits, mesmo que o pacote que você baixou seja para sistemas 64bits. Veja por você mesmo.

Primeiro Passo - Faça um diaginóstico:

Entre na pasta platform-tools que fica dentro de adt-bundle-linux.../sdk:

$ cd /diretorio/adt-bundle-linux-x86_64/sdk/platform-tools

Agora utilize os comando ldd e file no executavel adb para analise:

$ ldd adb

not a dynamic executable

$ file adb

/opt/adt-bundle-linux-x86_64-20130729/sdk/platform-tools/adb: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, not stripped

se você obteve essas mensagens então podemos continuar.

Segundo Passo - Atualize seu repositorio

Nos meus tutoriais passo-a-passo recomendo atualizar seu repositório e o sistema antes de fazer qualquer alteração, até pra evitar eventuais problemas.

$ sudo apt-get update
$ sudo apt-get upgrade

Terceiro Passo - Instale suporte 32bits e libs 32bits

A Solução do problema está aqui! Após concluir a instalção do suporte 32 bits o adb sera emulado e voltará a funcionar.

$ sudo dpkg --add-architecture i386
$ sudo apt-get update
$ sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 ia32-libs

Ultimo Passo - Faça outro diagnóstico:

$ ldd /opt/adt-bundle-linux-x86_64-20130729/sdk/platform-tools/adb
 linux-gate.so.1 => (0xf772a000) librt.so.1 => /lib/i386-linux-gnu/i686/cmov/librt.so.1 (0xf770a000) libdl.so.2 => /lib/i386-linux-gnu/i686/cmov/libdl.so.2 (0xf7706000) libpthread.so.0 => /lib/i386-linux-gnu/i686/cmov/libpthread.so.0 (0xf76ec000) libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf7600000) libm.so.6 => /lib/i386-linux-gnu/i686/cmov/libm.so.6 (0xf75da000) libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf75bd000) libc.so.6 => /lib/i386-linux-gnu/i686/cmov/libc.so.6 (0xf745a000) /lib/ld-linux.so.2 (0xf772b000)

Se você chegou até aqui então seu sistema foi corrigido.

Comentários

  1. Olá luiz,
    para mim acontece um erro, dizendo que as dependencias nao foram encontradas, estou usando Debian 7.4.0 64bits
    root@pc:/opt/adt-bundle-linux-x86_64-20140321/sdk/platform-tools# sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 ia32-libs
    Lendo listas de pacotes... Pronto
    Construindo árvore de dependências
    Lendo informação de estado... Pronto
    O pacote libc6:i386 não está disponível, mas é referenciado por outro pacote.
    Isto pode significar que o pacote está faltando, ficou obsoleto ou
    está disponível somente a partir de outra fonte
    No entanto, os pacotes a seguir o substituem:
    libc-bin initscripts tzdata

    O pacote libstdc++6:i386 não está disponível, mas é referenciado por outro pacote.
    Isto pode significar que o pacote está faltando, ficou obsoleto ou
    está disponível somente a partir de outra fonte

    O pacote libncurses5:i386 não está disponível, mas é referenciado por outro pacote.
    Isto pode significar que o pacote está faltando, ficou obsoleto ou
    está disponível somente a partir de outra fonte
    No entanto, os pacotes a seguir o substituem:
    libtinfo5

    E: O pacote 'libc6:i386' não tem candidato para instalação
    E: O pacote 'libncurses5:i386' não tem candidato para instalação
    E: O pacote 'libstdc++6:i386' não tem candidato para instalação
    E: Impossível encontrar o pacote ia32-libs

    tentei instalar os pacotes que substituem como indicado mas a resposta é sempre que nao foi possivel encontrar.

    ResponderExcluir
    Respostas
    1. Já deu uma olhada no teu source.list? tenta usar este.

      $ sudo vim /etc/apt/source.list

      # /etc/apt/source.list - debian 7 wheezy
      deb http://ftp.br.debian.org/debian stable main contrib non-free
      deb-src http://ftp.br.debian.org/debian stable main contrib non-free
      deb http://ftp.debian.org/debian/ wheezy-updates main contrib non-free
      deb-src http://ftp.debian.org/debian/ wheezy-updates main contrib non-free
      deb http://security.debian.org/ wheezy/updates main contrib non-free
      deb-src http://security.debian.org/ wheezy/updates main contrib non-free

      $ sudo apt-get update
      $ sudo apt-get upgrade

      e depois repete os passos a seguir

      $ sudo dpkg --add-architecture i386
      $ sudo apt-get update
      $ sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 ia32-libs

      Excluir
  2. Excelente tutorial. Funcionou certinho comigo. Com a única diferença de que o pacote ia32-libs estava obsoleto. Ele me sugeriu usar o lib32z1 e rodou normalmente.

    Muito obrigado pelo post, me ajudou bastante.

    Abraços

    ResponderExcluir
  3. excelente tutorial, passei uma semana ralando, sem saber qual era o problema, mas agora consegui resolver seguindo seu tutorial, muito obrigado!

    ResponderExcluir

Postar um comentário

Postagens mais visitadas deste blog

Cedilha no Debian Wheezy

Moto G: Como destravar o bootloader e dar permissão root com Android Lollipop