Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Failed to load AppCompat ActionBar with unknown error

Logo no começo do projeto quando efetuei copies e joguei na pastas os arquivos .

O Preview não esta parecendo nada.

Então usei Force Refresh Layout. Refiz a build (martelo).

Mas mesmo assim esta dando esse erro Failed to load AppCompat ActionBar with unknown error

6 respostas

Oi Vanderson, blz?

unknown error, é algo bem genérico, consegue mandar o print do Android Studio com esse erro? De repente é um pequeno detalhe. Se preferir, você pode mandar o projeto também via GitHub, dessa forma, eu posso baixá-lo e investigar o possível problema.

Stack ERRO: https://gist.github.com/capnemobr/75fb34eee9782c8993679a18282bc9d9

Professor eu fui no projeto anterior, que fiz de Constraint com vc e comparei o Gradle. Então eu refiz aqui conforme o projeto de Constraint e funcionou.

Mas fiquei com uma duvida, porque desde do começo doS Cursos toda vez que crio um projeto novo, tenho que copiar uma Gradle de um projeto antigo, pra poder funcionar.

Por que no New Project nem renderizando o preview esta, ja dá um erro de compilação, mesmo se for Activity em branco.

Quando é criado um projeto novo o Gradle ele é criado dessa maneira abaixo:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "br.com.alura.myapplication2"
        minSdkVersion 15
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0-beta01'
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

E para funcionar estou usando assim

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    defaultConfig {
        applicationId "br.com.alura.ceep"
        minSdkVersion 15
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
    implementation 'com.android.support:cardview-v7:26.1.0'
}

Oi Vanderson, blz? Tudo indica que é o SDK que está sendo usado, no caso do 28, perceba que ele ainda usa dependências do Android Support alpha, essa versão é bem instável e vai apresentar problemas inesperados em algumas situações. A solução mais fácil é realmente mudando a versão para uma mais estável, como é o caso da 27 ou 26 (que foi usada no curso).

Blz professor e vc ? Entendi, como estou fora do mercado queria saber uma coisa. Então quer dizer que hoje em dia os projetos em empresas estão usando realmente a SDK 26 e 27 ? Por exemplo seu quiser criar uma aplicação com a 26 não estaria usando SDK "antiga" , "desatualizada" ?

Desde já obrigado.

solução!

Tranquilo também, sobre essa parte da versão, é recomendado que utilize a última versão estável para evitar os problemas de versões que ainda estão em teste, portanto, usar a 27 seria o ideal atualmente.

Sobre a dúvida de dar suporte, dificilmente alguém desenvolve para Android para uma versão específica, a não ser que seja uma App com muito legado. Em outras palavras, vai sempre ser um suporte para API mínima e máximo. Atualmente vejo muito comum deixando a 19 até a 27 por exemplo.

Isso significa que antigo seria se a App não desse suporte para esse range de APIs...

Um outro fato legal de considerar é verificar a quantidade de dispositivos cadastrados na play store e suas versões de Android. Esse pode ser um bom número para considerar quando for decidir o range de API que vai dar suporte. Essa lista pode ser visualizada nesse link.

Obrigado.E um bom final de semana.