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

import android.support.v7.app.AppCompatActivity não importa

Pessoal,

Na classe ListaTransacoesActivity.kt, mesmo efetuando a limpeza com "clean", Rebuid Project, MakeProject e invalidate/caches e restart, limpando o projeto não conseguimos compilar corretamente pela falta da importação da "import android.support.v7.app.AppCompatActivity" não importa.

Como proceder nesses caso uma vez a classe estava compilando normalmente (anteriormente) e agora não está mais.

Obrigado Fabiano

2 respostas

Ao entrar no build.gradle (app), refiz as dependências e sicronizei, resolveu o problema.

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support:design:28.0.0'
    implementation 'com.android.support:cardview-v7:28.0.0'
    implementation 'com.github.clans:fab:1.6.4'
    implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    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'
}

Contudo, na classe ListaTransacoesActivity.kt, está apresentando um erro de compilação . A importação "import br.com.alura.financask.R.id.*" está em cinza e na linha onde tem "lista_transacoes_adiciona_menu.close(true)", o "close" está em vermelho.

package br.com.alura.financask.ui.activity

import android.os.Bundle
import android.os.Parcel
import android.os.Parcelable
import android.support.v7.app.AppCompatActivity
import android.view.View
import android.view.ViewGroup
import br.com.alura.financask.R
import br.com.alura.financask.R.id.*
import br.com.alura.financask.delegate.TransacaoDelegate
import br.com.alura.financask.model.Tipo
import br.com.alura.financask.model.Transacao
import br.com.alura.financask.ui.ResumoView
import br.com.alura.financask.ui.adapter.ListaTransacoesAdapater
import br.com.alura.financask.ui.dialog.AdicionaTransacaoDialog
import kotlinx.android.synthetic.main.activity_lista_transacoes.*

class ListaTransacoesActivity() : AppCompatActivity(), Parcelable {

    // aqui é onde setamos manualmente as transações
    private val transacoes: MutableList<Transacao> = mutableListOf()

    constructor(parcel: Parcel) : this() {
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_lista_transacoes)

        configuraResumo()
        configuraLista()// depois de importado é a mesma coisa do findViewById<ListView>(R.id.lista_transacoes_listview)
        configuraFab()
    }

    private fun configuraFab() {
        lista_transacoes_adiciona_receita
            .setOnClickListener {
                chamaDialogDeAdicao(Tipo.RECEITA)
            }

        lista_transacoes_adiciona_despesa
            .setOnClickListener {
                chamaDialogDeAdicao(Tipo.DESPESA)
            }
    }

    private fun chamaDialogDeAdicao(tipo : Tipo) {
        AdicionaTransacaoDialog(window.decorView as ViewGroup, this)
            .chama(tipo, object : TransacaoDelegate {
                override fun delegate(transacao: Transacao) {
                    atualizaTransacoes(transacao)
                    lista_transacoes_adiciona_menu.close(true)
                }
            })
    }


    private fun atualizaTransacoes(transacao: Transacao) {
        transacoes.add(transacao)
        configuraLista()
        configuraResumo()
    }

    private fun configuraResumo() {
        val view: View = window.decorView
        val resumoView = ResumoView(this, view, transacoes)
        resumoView.atualiza()
    }

    private fun configuraLista() {
        lista_transacoes_listview.adapter = ListaTransacoesAdapater(
            transacoes,
            this
        )
    }

    override fun writeToParcel(parcel: Parcel, flags: Int) {

    }

    override fun describeContents(): Int {
        return 0
    }

    companion object CREATOR : Parcelable.Creator<ListaTransacoesActivity> {
        override fun createFromParcel(parcel: Parcel): ListaTransacoesActivity {
            return ListaTransacoesActivity(parcel)
        }

        override fun newArray(size: Int): Array<ListaTransacoesActivity?> {
            return arrayOfNulls(size)
        }
    }

}

Como resolver?

solução!

Ao realizar novamente "Build -> Clean; Build -> Rebuild; Build -> Make Project;" e por fim "File -> Invalidate Caches / Restart ..." O problema foi resolvido e tudo voltou a compilar normalmente, portanto, quando tiverem esse problema a solução é acessar na sequência:

  1. Build -> Clean; (se persistir o problema)
  2. Build -> Rebuild; (se persistir o problema)
  3. Build -> Make Project; (se persistir o problema)
  4. File -> Invalidate Caches / Restart ...

A última opção irá restartar a IDE limpando o cache.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software