gen já existe, mas não é uma pasta de origem

91

Estou desenvolvendo meu projeto Android, depois de remover uma biblioteca não utilizada, recebi o erro:

myproject/gen already exists but is not a source folder. Convert to a source folder or rename it

No meu código de atividade, todos os recursos de R.javanão podem ser resolvidos.

Eu tentei, clique com o botão direito no meu projeto => Java Build Path => na aba "Fonte", adicionei gen / como fonte. Mas isso não ajuda com o problema ...

Por que, como se livrar desse problema?

----ATUALIZAR----

Descobri isso, o eclipse também reclama que "O projeto não tem arquivo project.properties! Edite as propriedades do projeto para definir um." , mas tenho o arquivo project.properties em meu projeto. Por que reclama? Limpei o projeto e "corrijo as propriedades do projeto", mas isso não ajuda.

Leem.fin
fonte
5
verifique se sua pasta src contém qualquer pasta gen. se houver, exclua. .não há necessidade de criá-lo manualmente. Limpe seu projeto uma vez.
Padma Kumar,
oi, Minha pasta src não contém nenhuma pasta gen ...
Leem.fin
1
Aconteceu comigo depois de importar um projeto
max.mustermann
1
Você tem uma resposta muito boa, atualmente avaliada em 79, mas ainda não a aceitou. Você deve aceitar. E sua "ATUALIZAÇÃO" deve ser uma pergunta separada (e você pode querer ver se alguém já respondeu).
steveha
Acho que minha resposta ajudará neste problema .. stackoverflow.com/questions/9738203/…
Ranjit

Respostas:

234

Tenho o mesmo problema.

Duas ações, primeiro:

    1. Clique com o botão direito do mouse no projeto e vá para "Propriedades"
    2.Selecione "Caminho de construção Java" à esquerda
    3. Abra a guia "Fonte"
    4. Clique em "Adicionar pasta ..." e marque "gen" e "src"

segundo: (porque a ação anterior me pediu para remover algo ... não me lembro o que era ...)

    1. Clique com o botão direito no projeto e vá em "Propriedades"
    2. Selecione "Caminho de construção Java" à esquerda
    3. Abra a "guia" Bibliotecas
    4. Adicione um JAR externo. Adicione a API do Google que está em seu diretório android (android-sdk \ plataformas \ android-sua versão

E agora funciona para mim!

AntoineP
fonte
10
No meu caso, só precisei fazer a primeira parte mencionada acima. Obrigado!
tm_forthefuture
A primeira solução também me ajudou na primeira tentativa :)
Saad Qureshi
2
Funcionou ... mas como isso aconteceu? Android estúpido. :-)
Ryan Detzel
A primeira etapa funcionou para mim. Não tenho certeza de como ou por que o Eclipse decidiu apenas descartar essas pastas (.classpath não pareceu mudar) ...
ssawchenko
Saúde .. Funciona muito bem :)
vjamit
37

Solução:

Passo 1 :

  • Clique com o botão direito no projeto e vá em "Propriedades"
  • Selecione "Caminho de construção Java"
  • Mude para a guia "Fonte" Remova todas as fontes da pasta de origem no caminho de construção
  • Reinicie o Eclipse

Passo 2 :

  • Clique com o botão direito no projeto e vá em "Propriedades"
  • Selecione "Caminho de construção Java"
  • Mude para a guia "Fonte"
  • Clique em "Adicionar pasta ..." e marque a pasta de origem "gen" e "src" no caminho de construção
  • Reinicie o Eclipse

Final

Construir projeto (s)

Happy Coder :)

Vinayak
fonte
1
check gen só resolve o problema e não funciona com a pasta src
Manikandan
Eu teria perdido meu dia. Obrigado
Prakash de
17
  1. Clique com o botão direito no projeto e vá para Propriedades
  2. Selecione o caminho de construção Java à esquerda
  3. Guia de código aberto
  4. Clique em Adicionar pasta ... e verifique gen e src
Shubham Das
fonte
Essa é a melhor resposta. Conciso, problema resolvido, bum!
Ely
8

Isso é causado pelo uso do importador errado no Eclipse. Se você tiver projetos Android, será necessário importá-los para sua área de trabalho com Android-> Código Android existente , não Geral-> Projetos existentes .

insira a descrição da imagem aqui

Eric Cloninger
fonte
3

Tive que deletar toda a pasta gen dentro do eclipse, não do explorador de arquivos. então fez uma limpeza e foi reconstruída. engraçado, isso ocorreu logo depois que executei um relatório HTML do Lint.

j2emanue
fonte
Isso também funcionou para mim. Apenas apaguei o arquivo gen e alguns segundos depois ele foi regenerado e tudo voltou ao normal.
Sandy
2

A pasta gen é onde o ADT cria o arquivo R.java, que especifica suas definições de recursos. ou seja, seus recursos (cores, dimensões, layouts, etc) são convertidos em código e colocados em R.java na pasta gen.

Portanto, ao construir o aplicativo, você precisa garantir que a pasta gen seja tratada como uma pasta de código-fonte pelo seu IDE, pois contém a classe R.

Em seu IDE, você precisa marcar a pasta gen como uma pasta de origem, para que seu conteúdo seja construído junto com sua origem.

Sua taxa de aceitação é muito baixa. Se você quer que as pessoas o ajudem, você precisa de uma alta taxa de aceitação.

Ollie C
fonte
9
mas como posso aceitar se não houver uma resposta correta? Eu verifico as respostas, mas ninguém é a solução ... Por exemplo, meu post atual, eu sei o que é gen / e como funciona no Android, estou buscando uma solução para o meu problema atual. Mas ainda não tem um.
Leem.fin
1

Eu encontrei o mesmo problema, resolvi da seguinte maneira:

No Package Explorer, clique com o botão direito na pasta gen, encontre "Build Path - Use as Source Folder" e clique nele.

É isso. Eu espero que isso ajude.

hywl51
fonte
1

Eu tinha o SVN configurado para um projeto com o mesmo problema, apaguei todas as pastas e arquivos, recuperei novamente do SVN e ainda sem sorte. A única coisa que ajudou foi reverter as alterações e excluir / reimportar projetos para o espaço de trabalho. Espero que isto ajude

Milosmns
fonte
0

A última vez que tive esse problema, foi porque mudei a fonte para outro branch nos bastidores. Assim que fechei o Eclipse e reiniciei, o problema foi embora.

themarshal
fonte
0

Tive alguns dos mesmos sintomas , mas resolvi de forma diferente:

Descobri que havia dois arquivos no diretório do drawable que eram conflitantes: icon.png e icon.xcf. Isso fez com que R falhasse na geração. Tirei o icon.xcf do caminho e R gerou e o projeto foi compilado.

Stephan Henningsen
fonte
0

Vá para as propriedades do projeto, vá para Java Build Path e, em seguida, remova a pasta já existente, em seguida, clique em Adicionar pasta e em Adicionar a pasta de origem e gen. em seguida, pressione ok ............ Funcionará .......

Singhak
fonte
0

Minha solução foi colar o seguinte no arquivo .classpath:

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
    <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="src" path="gen"/>
    <classpathentry kind="output" path="bin/classes"/>
</classpath>
Pawel
fonte
0

Também precisamos verificar nossas declarações de importação. Se importamos 'android.R', precisamos removê-lo.

Jehoshuah
fonte
0

Isso acontece porque o arquivo .classpath foi apagado de alguma forma. Este arquivo contém todas as informações da guia Caminho de construção Java em Propriedades do projeto. Você pode adicionar todas as informações manualmente, mas há uma maneira mais fácil de corrigir esse problema.

Se você tiver uma cópia do arquivo .classpath em sua máquina, basta copiá-lo e colá-lo no diretório do projeto.

Patrick
fonte
0

Tentei as sugestões dadas aqui e ainda tive o problema. Finalmente, descobriu-se que o Eclipse teve suas importações erradas. Por algum motivo, ele adicionou as palavras "gen" e "src" ao início da linha de importação. Tive que mudar todas as linhas de importação de

import gen.org.qtproject.qt5.android.bindings.QtApplication;

para

import org.qtproject.qt5.android.bindings.QtApplication;

Depois de fazer isso, tudo voltou ao normal.

Panonski
fonte