Pergunta

Eu apenas o download e instalado o novo SDK Android. Eu queria criar uma aplicação simples para test drive-lo.

O assistente criou este código:

package eu.mauriziopz.gps;

import android.app.Activity;
import android.os.Bundle;

public class ggps extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

Eclipse me dá o erro

R não pode ser resolvido

na linha

setContentView(R.layout.main);

Por quê?

PS: Eu tenho um arquivo XML chamado main.xml sob res/layout/

.
Foi útil?

Solução 7

O que Will disse estava certo

R é uma classe gerada automaticamente que contém as constantes usadas para identificar seus> recursos. Se você não tem um arquivo R.java (seria gen / eu.mauriziopz.gps / R.java em> Eclipse com o 1.5 SDK) Eu recomendaria fechar e reabrir seu projeto ou indo> Projeto> Construir tudo (e selecionando "criar automaticamente" enquanto há como recomendado pelo> Josef). Se isso não funcionar, do que tentar fazer um novo projeto, se o problema é recriado que> postar aqui novamente e vamos entrar em mais detalhes.

mas eu descobri que havia um outro problema que estava causando o primeiro. As ferramentas no diretório SDK não tem as permissões para ser executado, então foi como a não existia para Eclipse, portanto, não construir o arquivo R.java.

Assim, modificando a permissão e selecionando "criar automaticamente" resolveu o problema.

Outras dicas

Depois de rastrear esse problema também, achei que esta nota na documentação do Android:

http://source.android.com/source/using-eclipse.html

* Nota: Eclipse, por vezes, gosta de adicionar uma declaração "import android.R" no topo de seus arquivos que os recursos de uso, especialmente quando você perguntar para Eclipse tipo ou de outro modo gerenciar importações. este fará com que o make para quebrar. Veja para fora para estes importação errônea declarações e excluí-los. *

Ao atravessar os tutoriais de amostra do Android, muitas vezes eu ia usar o Ctrl + Mudança + O comando para "Organizar Importações" e gerar qualquer falta declarações de importação. Às vezes, isso iria gerar a declaração incorreta de importação que iria esconder a classe R.java que é gerado automaticamente quando você construir.

Cada vez que eu tive um problema com R não foi gerado, ou até mesmo desapareceram, isso foi devido a algum problema no arquivo de layout XML que impediu a aplicação de ser construído.

Sempre que você começa

R não pode ser resolvido

, em seguida, verifique o diretório /res e deve haver algum arquivo que tem algum erro nele e que está impedindo que a aplicação seja construída. Por exemplo, pode ser um arquivo de layout ou pode ser devido a algum recurso que falta é, mas você já definiu no arquivo XML.

Se você tiver qualquer (!) Imagens adicionais, mesmo não utilizados (!) Ou não referenciadas em uma pasta como res / drawables-mdpi que não cumpram com as convenções de nomeação de arquivo (pode conter apenas [a-z0-9_.] ), a classe R.java pode não gerar, fazendo com que a cadeia de eventos todos os outros cargos referidos. Espero que ajude!

meu projeto tem incluir um r.java.at o início, R.layout.main trabalho bom.Mas, após a adição de algum código que não funciona, eo erro é R.layout.main não pode resolvido. qual é o problema?

Olhe para suas importações. As chances são de que a linha:

import android.R;

estará lá. Se for esse o caso, removê-lo, de modo que seu projeto vai resolver R não com o padrão classe Resources Android, mas com a auto-gerada a partir de seu / res / pasta.

E outra coisa que pode causar este problema:

Eu instalei a nova ADT (v. 22). Ele parou de criar pasta gen que inclui R.java. A solução foi também instalar novas Ferramentas de Construção do Android SDK do Android SDK Manager.

aqui

R.java é um arquivo que os plugins do Eclipse Android cria enquanto a construção de sua aplicação. R.java é criado sob o "gen" diretório. Este arquivo é gerado a partir da informação nas "res" diretório. Se você executar selecione "Projeto" -> "Clean ..." no Eclipse menu, ele irá remover e regenerar o arquivo R.java.

O problema "R não pode ser resolvido" acontece quando você mudar de nome do pacote no arquivo AndroidManifest.xml. Ele usa o seu Android empacotar nome para criar um subdiretório sob o diretório "gen", onde ele armazena o arquivo R.java.

Eclipse pode ter problemas execução limpo, porque ele está confuso sobre onde o arquivo R.java é quando você mudou o pacote Android nome. ou você pode renomear o gen sob subdiretório para corresponder ao seu novo nome de pacote, ou você pode mudar o seu nome do pacote de volta para o velho nome. Fazer a limpeza e, em seguida, mudar o nome do pacote para o novo nome você quer. Isso funciona melhor se você parar de Eclipse de tentar construir enquanto você está mudando o nome do pacote. Sob o menu "Projeto" desmarque a opção "criar automaticamente" e também quando o "Clean ..." diálogo pergunta se ele deve "iniciar uma compilação imediatamente" desmarque a caixa para que ele não tente construir enquanto você está mudando o nome do pacote. Depois de ter alterado o nome que você pode transformar "Desenvolver Automaticamente" novamente.

Note que, se o seu AndroidManifest.xml nome do pacote de arquivos não corresponde o nome do pacote Java, Eclipse vai acabar automaticamente adicionando um "Import .R"; linha em todos os seus arquivos .java que tem todas as referências a R. Se você mudar de AndroidManifest.xml nome do pacote, por vezes, Eclipse não atualiza tudo isso adicionado importações. Se isso acontecer, use o Eclipse refatoração ( ALT + Mudança + R ) para alterar a instrução de importação em um dos seus arquivos Java o seu novo nome de pacote AndroidManifest.xml. É melhor fazer isso enquanto tiver desativado "criar automaticamente".

R é uma classe gerada automaticamente que contém as constantes usadas para identificar seus recursos. Se você não tem um arquivo R.java (seria GEN / eu.mauriziopz.gps / R.java em Eclipse com o 1.5 SDK) Eu recomendaria fechar e reabrir seu projeto ou indo para Projeto> Construir tudo (e selecionando "Construir automaticamente" enquanto há como recomendado por Josef). Se isso não funcionar, do que tentar fazer um novo projeto, se o problema é recriado de pós aqui novamente e vamos entrar em mais detalhes.

Fechar todos os arquivos, projeto limpo, reinicie o Eclipse.

Vale a pena conferir em AndroidManifest.xml. O package atributo tem o valor correto.

Isto é:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="your.correct.package.name"
   ...

Depois de mudar isso, o R.java será gerado-re.

Este erro também pode ser causada pela adição de uma atividade para um namespace que é diferente do namespace raiz para o seu pacote.

Por exemplo, se com.example.myapp é o namespace raiz para o seu pacote, você pode então adicionar uma atividade para o namespace com.example.myapp.activities.

Isto irá produzir o erro "R não pode ser resolvido".

Para corrigir a importação a R no namespace padrão em sua atividade deve ser:

import com.example.myapp.R;

Junto com as grandes sugestões nas respostas anteriores, certifique-se seu alvo Android está definido:

  1. Clique com o botão direito do mouse em seu projeto
  2. Escolha Propriedades
  3. Escolha Android no menu à esquerda
  4. Tick uma caixa ao lado da Construir projeto apropriado Target.
  5. Clique em Aplicar e OK

Edit: Um ano mais tarde eu encontrei uma outra causa. Eu tinha uma imagem .jpg na minha pasta drawable com o mesmo nome como uma imagem de .png. Fazendo referência a esta imagem no meu código deve ter confundido o programa e ele deu o erro "R não pode ser resolvido".

Certifique-se de que você instalou a ferramenta de construção gerente de formulário SDK Android

projeto com o botão direito Propriedades-> Java Buildpath selecione Biblioteca e adicionar android-support.jar a seguir estes passos.

Vá para Projeto-> Propriedades-> caminho de construção Java do que seleccionar a ordem e guia de exportação. Set android-suporte .jar biblioteca verificado e se-lo em cima da lista. E limpo e rebuild..It obras para a maioria dos casos

enter descrição da imagem aqui

Eu só tinha este problema pela milionésima vez e percebi que estava causando isso: eu criei um arquivo XML com letras maiúsculas no nome. Todos os seus nomes de arquivos XML em /res deve coincidir com [a-z0-9\\._].

solução

Mais simples -. Às vezes você só precisa salvar o arquivo XML que estava trabalhando para obter o autogenerator para chutar

Salve o arquivo (por exemplo main.xml) exclua o arquivo R.java e ver se o R.java regenerado resolve o problema R determinação.

R é uma classe gerada. Se você estiver usando as ferramentas de Desenvolvimento do Android (ADT) é gerado sempre que o projeto é construído. Você pode ter 'criar automaticamente' desligado.

Verifique os nomes de arquivos XML. Certifique-se de que eles estão todos em letras minúsculas.

Também certifique-se de que quaisquer nomes de recursos de imagem também são todos em letras minúsculas. Eu tinha uma letra maiúscula em nome do meu arquivo jpg, e isso fez com que o não resolvido direita erro R em meu projeto.

Este erro surgiu na minha instalação do x64 Linux Mint. Descobriu-se que o resultado foi uma falha no binário ADB, porque o pacote ia32-libs não foi instalado. Simplesmente executando apt-get install ia32-libs e relançar Eclipse Corrigido o erro.

Se a sua distro x64 não tem ia32-libs, você vai ter que ir Multiarch.

Verifique # 4 e # 5 sobre este post: http://crunchbang.org/forums/viewtopic.php?pid=277883#p277883

Espero que isso ajude alguém.

Você pode precisar atualizar / instalar ferramentas do SDK. Relançamento Android SDK Manager novamente e instalar um novo item:. Android SDK Build-tools.one por uma exclusão, correção que um trabalho para você enter descrição da imagem aqui

Você pode precisar de ferramentas de atualização do SDK. Relançar Android SDK Manager novamente e instalar um novo item: SDK Android Build-ferramentas.

enter descrição da imagem aqui

Eu tive esse problema também. Descobriu-se que eu tinha excluído inadvertidamente o "app_name" recurso de cadeia a partir do arquivo strings.xml, que estava causando um erro de silêncio. Uma vez eu adicionei-lo de volta, a classe R foi gerado com sucesso e tudo era voltar a funcionar.

Primeiro verifique se há qualquer erro em qualquer layout xml ou não, se, em seguida, resolvê-lo pela primeira vez.

Caso contrário remover junit dependência de projeto e reconstruir o projeto.

 enter descrição da imagem aqui

Tente fazer o seu novo nome de arquivo de layout XML minúsculas. Por exemplo, o uso my_file.xml vez de myFile.xml.

No entanto, outro R.java razão pode não ser gerada automaticamente é se você tiver diretórios como res / drawable-hdpi , res / drawable-mdpi ou res / drawable -ldpi .

1.6+ parece ser OK com esses diretórios, mas o 1.5 não quer que eles. Quando eu removi os diretórios, R.java começou autogenerating para mim novamente.

Basta ir ao menu lista Top Android. clique em build Menu, em menos Desenvolver clique em Reconstruir Projeto .

 enter descrição da imagem aqui

Eu tinha os exemplos de Android 8 e estava tentando usar Android 7 SDK. Quando fechei o projeto e reabriu a pasta do aplicativo e escolheu usar Android 8 SDK, foi capaz de encontrar o arquivo R. Espero que isso ajude.

No meu caso, eu tinha um erro no meu AndroidManifest.xml. Outros disseram que seus arquivos XML deve estar livre de erros, mas eu estava apenas olhando no res / pasta. Encontrar e corrigir tantos erros possíveis eo problema pode muito bem resolver-se.

Muitas vezes isso é por causa do número da versão MinSDK você forneceu ao criar o projeto. Exemplo:

Se você quiser 2.1 a ser o mínimo, Android 2.1 é realmente API Nível 7.

Você pode ver o que estou falando quando você navega na SDK você baixou e instalou. Navegue até o local da instalação do SDK para (C:\android-sdk-windows por exemplo) e abra a pasta com o nome "plataformas". Você vai ver algo como "android-7" listada como uma pasta, e se você abrir que há um arquivo source.properties que, quando aberto com um editor de texto, irá mostrar-lhe a versão da plataforma correspondente.

Quando você cria um projeto, e você deve selecionar uma API "Build Target", a última coluna na lista com o nome mostra "API Level" o número que você está procurando ao preencher a configuração MinSDK.

Este é provavelmente um dos mais erros comuns que resulta no arquivo R.java não sendo criados no âmbito do Projecto> gen> packagename> R.java.

Remove main.out.xml. Eu sou novo para isso e ainda não sabe o que este arquivo é usado para, mas removê-lo limpo o problema.

Infelizmente nenhuma das perguntas existentes ajudou. Desde o meu problema parece plataforma específica, este só pode funcionar se você estiver em Ubuntu de 64 bits (Atualmente, estou usando o Ubuntu 12). No começo eu não vi o "Problemas" Window, que já sugeriu uma solução, que em 64 Bit Ambiente você precisa dos 32 libs bits, o que pode estar faltando:

sudo apt-get install ia32-libs

Eu instalei o pacote e reconstruir meu projeto, que corrigiu o problema para mim.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top