erro de recurso no Android Studio após atualização: Nenhum recurso encontrado


101

Após uma atualização recente para o Android Studio, estamos tendo problemas para compilar um projeto que funcionava anteriormente. A princípio, estávamos recebendo o seguinte erro:

/Users/james/Development/AndroidProjects/myapp/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/23.0.0/res/values-v23/values-v23.xml
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'.
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Button.Colored'.

Eu atualizei o destino de compilação sdk em nosso arquivo gradle para 23, o que fez com que esse problema específico fosse embora, mas nos deixou com uma tonelada de erros de pacote apache.http (especificamente, uma tonelada de pacotes apache que usamos para coisas de http desapareceram agora no sdk 23).

O que eu quero fazer é resolver o erro de recurso estranho, mas sem atualizar para o sdk 23. Não tenho tempo para reescrever nossa biblioteca de ferramentas agora para usar qualquer nova implementação de componentes http do apache que foi lançada. Alguém tem alguma idéia?


Você não recebe o erro no próprio appcompat_v7 res / values-v23 / styles.xml (em vez de no seu projeto)?
Solace

1
Não tenho certeza se entendi sua pergunta? Estávamos obtendo o problema em um arquivo gerado, conforme indicado pelo caminho do arquivo no erro postado acima.
James Dobson

Se o erro estiver ocorrendo nos arquivos gerados, você deve atualizar as ferramentas de compilação, no gradle, para corresponder à versão das bibliotecas. ou seja, buildToolsVersion "23.0.1"
BK Batchelor

Respostas:


78

Altere a versão appcompat em seu arquivo build.gradle de volta para 22.2.1 (ou o que você estava usando antes).


5
Obrigado, essa foi a solução. Segui as instruções aqui: code.google.com/p/android/issues/detail?id=183122#makechanges especificamente, a solução oferecida pela scott. Tive que deletar o 23.0.0 na minha pasta sdk, deletar o SDK da versão 23 no gerenciador do SDK e então fazer uma limpeza e reconstruir
James Dobson

4
James, obrigado pela solução. No entanto, estou simplesmente surpreso com a situação do PITA - porque nunca tive appcompat-v7: 22.2.1 instalado !!
Alguém em algum lugar de

Existe uma maneira de fazer isso no Eclipse?
Solace

10
@Solace Eclipse iseless
Back Packer

6
@BackPacker Não. O Android Studio é o problema. Tenho um bom computador e o Android Studio leva uma eternidade para compilar um aplicativo simples, hello world.
TheRealChx101

197

Você precisa definir compileSdkVersion para 23.

Como a API 23 do Android removeu os pacotes obsoletos do Apache Http, se você usá-los para solicitações do servidor, precisará adicionar useLibrary 'org.apache.http.legacy'ao build.gradle conforme indicado neste link:

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.0"
    ...

    //only if you use Apache packages
    useLibrary 'org.apache.http.legacy'
}

1
Isso funcionará, mas você deve instalar a nova versão do SDK. API 23 (plataforma Android 6.0). Isso permitirá que você ofereça suporte a dispositivos mais novos. É por isso que quando você altera a "versão appcompat" para uma versão mais recente, ela exigirá a versão mais recente do SDK.
JamesDeHart de

4
Esta resposta é muito melhor do que voltar a 22.2.1
Jörn Buitink

4
Certamente é uma resposta ideal e obviamente o curso de ação correto para a maioria das pessoas, entretanto, não responde à minha pergunta que era resolver o problema sem atualizar a versão do SDK. Fazer isso quebra uma biblioteca da qual dependemos, mas não tivemos tempo de atualizar na época. Desde então, atualizamos a biblioteca para usar os novos recursos e agora podemos atualizar com segurança para o sdk 23.
James Dobson

@RobertoB. Obrigado, isso é uma boa informação. Já atualizamos nossa base de código para usar as novas bibliotecas do apache, mas esperamos que ajude outros!
James Dobson

Como isso está relacionado às mensagens de erro dos relatórios do OP? Acho que compileSdkVersion é uma solução alternativa válida, mas usar a biblioteca legada do Apache é apenas um requisito indireto.
mdelolmo

21

no arquivo build.gradle de seus projetos ... escreva como abaixo .. Resolvi esse erro alterando a versão do appcompat de v7.23.0.0 para v7.22.2.1 ..

dependencies

{

compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.1'

}

A captura de tela abaixo é para melhor compreensão.


1
Não NÃO Não .... Eu não estava esperando isso! MAS ISSO FUNCIONOU !! Qual é o ponto em atualizá-lo para 23.0.1 então?
sud007

Este recebe meu +1: nem sempre é apropriado apenas atualizar para a versão mais recente de tudo imediatamente que alguém mandar. Este responde à pergunta original e corrige o problema para mim.
Mark Smith

10

Atenção, vem uma resposta errada! Mas qualquer pessoa sem bibliotecas Apache ou assim pode encontrar

compileSdkVersion 23
buildToolsVersion "23.0.0"



//...


dependencies {
compile 'com.android.support:appcompat-v7:23.0.0'
compile 'com.android.support:design:23.0.0'    

}

útil, funcionou para mim.


Por que ele tem tantos problemas com as bibliotecas do Apache?
NinjaCoder

4

você deve alterar seu compiledsdkversion e targetversion para 23 no arquivo gradle de compilação específico para o aplicativo. Certifique-se de ter instalado o sdk 23, versão 6.0 antes disso. Você pode assistir a este vídeo para obter mais ajuda. https://www.youtube.com/watch?v=pw4jKsOU7go


2

se você está recebendo erros mesmo depois de baixar o SDK mais recente e o Android Studio, sou um novato: O que eu fiz foi 1. Baixe o SDK recente (eu era) 2. Abra o arquivo-estrutura do projeto (ctrl + alt + shift + S) 3. Nos módulos, selecione o aplicativo 4. Na guia de propriedades ... altere a versão do SDK de compilação para api 23 Android 6.0 marshmallow (mais recente)

certifique-se de compilar a versão adk e as ferramentas de construção são da mesma versão (23)

Espero que ajude alguém para que ele não sofra como eu sofri nestes dias.


2

Tente combinar todas as versões:

compileSdkVersion 23
buildToolsVersion '23.0.0'
targetSdkVersion 23
compile 'com.android.support:appcompat-v7:23.0.0'

É trabalho para mim.


1

compileSDK deve corresponder à versão appCompat. TargetSDK ainda pode ser 22 (por exemplo, no caso de você ainda não ter atualizado para o novo modelo de permissão)


1

se você tem :

/Users/james/Development/AndroidProjects/myapp/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/23.0.0/res/values-v23/values-v23.xml
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'.
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Button.Colored'.

erro, você deve mudar o seu appcompat, buildtools, sdkpara 23 , mas, se você não gosta de mudar isso e deve estar em fazer 22 fazer isso:

  • compilar 23
  • alvo 22

0

Funciona apenas quando o build.grade foi alterado para:

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "blablabla"
        minSdkVersion 15
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.0.0'
}

0

Percebi que não tinha o SDK 23 instalado. Então, primeiro instalei e reconstruí meu projeto. E funcionou bem. Além disso, compilesdkVersion deve ser 23


0

Em primeiro lugar,

Tente verificar sua pasta SDK, para mim, era mydocuments / appdata / sdk .... etc. Então, basicamente, minha pasta sdk não foi totalmente baixada, a origem deste problema principalmente. Você tem que usar outro SDK do Android totalmente baixado (incluindo a seção Ferramentas e extras que você realmente precisa) ou usar o SDK do Eclipse que você pode baixar anteriormente para seus desenvolvimentos para o Android Eclipse. Então construa-> limpe seu projeto mais uma vez.

Vale a pena tentar.


0

Atualize para usar a API 23 (Android 6.0) ou volte a versão appcompat-v7 para 22.2.2 no Gradle. Isso funciona para mim ao adicionar o serviço Google Play


0

Método 1: Está aparecendo.você não instalou o Api 23. Portanto, instale o API 23.

Método 2:

Altere a versão appcompat em seu arquivo build.gradle de volta para 22.0.1 (ou menos).

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.