Não é possível executar copiar e colar no Android Studio

9

Eu enfrentei dois problemas principais no Android Studio. Antes de tudo, não consigo executar as habilidades copiar e colar ( ctrl+ c- ctrl+ v- ctrl+ x) em algumas classes. Para corrigir esse problema, clique em "invalide caches / reiniciar", mas ele será quebrado novamente imediatamente.

O segundo problema é (acho que está relacionado ao primeiro problema) o compilador não reconhece métodos e atributos já definidos. A sugestão automática etc. não funciona.

As etapas que eu tomei para tentar corrigir o problema são;

  1. Arquivo -> invalide caches / reinicia,
  2. Arquivo -> Modo de economia de energia -> Desativar,
  3. Feche todas as guias abertas e reinicie novamente,
  4. Arquivo -> Sincronizar projeto com arquivos Gradle,
  5. Arquivo -> Sincronizar com o sistema de arquivos,
  6. Exclua o JDK e reinstale,
  7. Exclua o Android Studio e reinstale,
  8. Exclua os arquivos SDK já baixados e a pasta ".Android",
  9. Desative e exclua todos os plugins.
  10. Marcado copiar-colar keymap em Arquivo -> Configurações -> Keymap
  11. Puxou o projeto do bitbucket para diferentes 2 computadores
  12. Criado novo projeto, copie classes de projeto inteiras com o NotePad ++ para o novo Projeto
  13. Tente converter todos os códigos Java para Kotlin, não é possível converter

Aqui estão as especificações do meu sistema; Windows 10 Home Single Language (TR), versão 1909. RAM de 16 GB. Android Studio 3.5.3 e Gradle Versão 3.5.3

Eu li todos os posts sobre o mesmo problema, mas não há sorte (os posts são apenas sobre a plataforma MAC e Linux).

ATUALIZAÇÃO 1.0 -> Descobri que algumas classes não podem executar as operações descritas acima, mas outras podem.

Percebi que, não há ícones para classes que não podem executar as operações que descrevi acima. (Às vezes, aparecem magicamente os ícones "J" e, quando clico em outra classe, esse ícone J desaparece imediatamente.) Acho que o sistema gradle ou de arquivos do Android Studio não reconhece esses arquivos como classes.

ATUALIZAÇÃO 2.0 -> Percebi que, quando cliquei na seção Estrutura do DuoFragment (que possui mais de 500 códigos de linhas e uma das classes não compiladas) não pode carregar nada. O tamanho do DuoFragment é maior para processar?

Além disso, quando verifiquei a seção Build, alguns processos não podem ser executados (não sei se isso é normal ou não);

  • Tarefa: app: compileDebugAidl NO-SOURCE,
  • Tarefa: app: compileDebugRenderscript NO-SOURCE,
  • Tarefa: app: processDebugJavaRes NO-SOURCE

ATUALIZAÇÃO 3.0 ->

Aqui estão meus arquivos Gradle. Arquivo Gradle no nível do projeto:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        google()
        jcenter()


    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.3'


        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven { url 'https://jitpack.io' }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

Arquivo Gradle no nível do aplicativo.

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.2"
    defaultConfig {
        applicationId "com.lotusif.dump2"
        minSdkVersion 21
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility = 1.8
        targetCompatibility = 1.8
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'androidx.recyclerview:recyclerview:1.1.0'
    implementation 'androidx.core:core:1.1.0'

    // material widgets
    implementation 'com.google.android.material:material:1.2.0-alpha03'

    // progress bar with text 
    implementation "com.github.skydoves:progressview:1.0.3"

    // sequence progress
   implementation 'com.github.transferwise:sequence-layout:1.0.11'

    // flash bar
   implementation 'com.andrognito.flashbar:flashbar:1.0.2'

    // toggle - switch button
   implementation 'com.github.GwonHyeok:StickySwitch:0.0.15'

    // Custom Toast message
    implementation 'com.github.GrenderG:Toasty:1.4.2'

    // liquid effect bar
    implementation 'com.mikhaellopez:circularfillableloaders:1.3.2'

    // bubble tab bar
    implementation 'com.fxn769:bubbletabbar:1.0.3'

    //glide image library
    implementation 'com.github.bumptech.glide:glide:4.10.0'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.10.0'

    // scaling layout
    implementation 'com.github.iammert:ScalingLayout:1.2.1'

    // lottie animation
    implementation 'com.airbnb.android:lottie:3.3.1'

    //Gson
    implementation 'com.google.code.gson:gson:2.8.6'

    //RxJava
    implementation 'io.reactivex.rxjava2:rxjava:2.2.15'
    implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'

    implementation 'com.daimajia.easing:library:2.1@aar'
    implementation 'com.daimajia.androidanimations:library:2.3@aar'

    //retrofit
    implementation 'com.squareup.retrofit2:converter-gson:2.7.1'
    implementation 'com.squareup.retrofit2:retrofit:2.7.1'
    implementation 'com.squareup.retrofit2:adapter-rxjava2:2.7.1'

}

Nenhuma sugestão Keymap Versão Android A sincronização Gradle é bem-sucedida se eu não adicionar código adicional

ATUALIZAÇÃO 1.0 Imagens

As classes não existem ícones ou apenas têm o ícone "J" não podem executar operações

Quando cliquei / abri outra classe, o ícone "J" desapareceu

ATUALIZAÇÃO 2.0 Imagens

Algum processo não pode ser feito na seção Build Não é possível carregar a estrutura DuoFragment Resumo do código DuoFragment

TeachMeJava
fonte
Você pode fornecer uma captura de tela completa do seu Android Studio? É possível que uma falha na sincronização de compilação / classificação (consulte Log de eventos ou Executar) interrompa a funcionalidade.
JakeSteam
Adicionada captura de tela completa do Android Studio @JakeSteam. A sincronização gradle é bem-sucedida, se eu não adicionar nenhum trecho de código adicional. (Todo o meu código de projeto vem do Bitbucket)
TeachMeJava
você verificou se copiar e colar está funcionando em outro lugar, como navegador ou editor de texto, etc.?
Sanket Vekariya 15/01
Sim, funciona. Ele não pode funcionar apenas em algumas classes (como eu disse na classe DuoFragment ()) @SanketVekariya
TeachMeJava 15/01
Você pode nos mostrar seu build.gradle? (de ambos, o projeto e o módulo principal). Você definiu locais java.source específicos para o projeto?
zapotec 20/01

Respostas:

1

ATUALIZAÇÃO -> Há um erro nas bibliotecas do Kotlin com o Windows 10 Single Language Turkish . (Talvez algumas das outras distribuições do Windows em um único idioma tenham o mesmo problema, eu ainda não sabia.) Algumas bibliotecas do Kotlin não podem funcionar no sistema operacional turco. Resolvi esse problema com a instalação do Windows 10 Pro English .

Outros desenvolvedores que usam o Windows 10 Single Language Turkish enfrentam o mesmo problema com ângulos diferentes. ( Exemplo1 e Exemplo2 )

RESPOSTA ANTIGA

TL; DR -> O problema é sobre bibliotecas de terceiros que são escritas com o Kotlin . Eu converti meu projeto Java para Kotlin e todas as bibliotecas de terceiros problemáticas funcionam bem. O problema é sobre o conflito Java - Kotlin .

Gostaria de compartilhar como resolvi o problema para aqueles que enfrentarão esses problemas mais tarde.

Executei todas as etapas mencionadas acima, uma a uma, mas não encontrei nenhuma solução e resolvi examinar minhas bibliotecas de terceiros.

Primeiro, desabilitei todas as bibliotecas de terceiros e verifiquei o status das minhas classes que não reconheciam métodos e atributos já definidos. Depois de desativar as bibliotecas de terceiros e fazer o Rebuild Project e o Sync Gradle, o recurso de sugestão automática dessas classes corrompidas começou a funcionar novamente. Em seguida, descobrindo quais bibliotecas de terceiros eram problemáticas, ativei essas bibliotecas de terceiros uma por uma. Eu descobri quais bibliotecas de terceiros quebraram meu projeto.

Havia quatro bibliotecas de terceiros que interromperam meu projeto: StickySwitch , ProgressView , SequenceLayout e Flashbar . Quando removi essas bibliotecas, tudo funcionou corretamente. Depois de remover as bibliotecas, meu arquivo Gradle ficou como abaixo.

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.2"
    defaultConfig {
        applicationId "com.lotusif.dump2"
        minSdkVersion 21
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility = 1.8
        targetCompatibility = 1.8
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'androidx.recyclerview:recyclerview:1.1.0'
    implementation 'androidx.core:core:1.1.0'

    // material widgets
    implementation 'com.google.android.material:material:1.2.0-alpha03'

    // progress bar with text BUGGY!
    // implementation "com.github.skydoves:progressview:1.0.3"

    // sequence progress BUGGY !
    // implementation 'com.github.transferwise:sequence-layout:1.0.11'

    // flash bar BUGGY !
    // implementation 'com.andrognito.flashbar:flashbar:1.0.2'

    // toggle - switch button BUGGY !
    // implementation 'com.github.GwonHyeok:StickySwitch:0.0.15'

    // Custom Toast message
       implementation 'com.github.GrenderG:Toasty:1.4.2'

    // liquid effect bar
       implementation 'com.mikhaellopez:circularfillableloaders:1.3.2'


    // bubble tab bar
       implementation 'com.fxn769:bubbletabbar:1.0.3'

    // android chart library
       implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'

    //glide image library
    implementation 'com.github.bumptech.glide:glide:4.10.0'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.10.0'

    // scaling layout
    implementation 'com.github.iammert:ScalingLayout:1.2.1'

    // lottie animation
    implementation 'com.airbnb.android:lottie:3.3.1'

    //Gson
    implementation 'com.google.code.gson:gson:2.8.6'

    //RxJava
    implementation 'io.reactivex.rxjava2:rxjava:2.2.15'
    implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'

    implementation 'com.daimajia.easing:library:2.1@aar'
    implementation 'com.daimajia.androidanimations:library:2.3@aar'

    //retrofit
    implementation 'com.squareup.retrofit2:converter-gson:2.7.1'
    implementation 'com.squareup.retrofit2:retrofit:2.7.1'
    implementation 'com.squareup.retrofit2:adapter-rxjava2:2.7.1'
}

Então, qual era o recurso comum dessas bibliotecas que corromperam meu projeto? Meu projeto foi escrito com Java, mas essas bibliotecas foram escritas com o Kotlin . Um segundo, não posso usar as bibliotecas Kotlin no meu projeto Java? Sim, eu posso . Eu tenho que adicionar android.useAndroidX=truee android.enableJetifier=trueno meu gradle.properties , é isso. Mas e se eu já tiver adicionado essas linhas no meu gradle.properties e ele não funcionar?

# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx1536m
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
# AndroidX package structure to make it clearer which packages are bundled with the
# Android operating system, and which are packaged with your app's APK
# https://developer.android.com/topic/libraries/support-library/androidx-rn
android.useAndroidX=true
# Automatically convert third-party libraries to use AndroidX
android.enableJetifier=true

Não entendi por que as bibliotecas kotlin não podem funcionar com meu projeto Java. Como você pode ver no meu arquivo Gradle , estou usando apply plugin: 'kotlin-android'e apply plugin: 'kotlin-android-extensions'para o suporte do Kotlin.

Como eu salvei meu projeto? Havia 2 opções disponíveis como eu sabia. Embora o primeiro método tenha sido o de remover essas 4 bibliotecas de terceiros e não pudesse usá-las, o segundo foi o de converter todas as classes Java para classes Kotlin (eu tentei isso antes, mas não funcionou até desativar todas as bibliotecas de terceiros). Eu escolhi converter todas as classes Java em classes Kotlin. Assim, pude usar 4 bibliotecas de terceiros mencionadas acima.

Levei 30 dias para resolver este problema. Agora, estou trabalhando na linguagem Kotlin. Como resultado, meu projeto está sendo executado sem nenhum problema.

TeachMeJava
fonte
Eu acho que estava mais relacionado ao fato dessas bibliotecas (ou seu aplicativo) usarem androidx do que por causa do Kotlin. O resultado da compilação do Kotlin é exatamente o mesmo que o código java. Veja isso sobre o androidx: developer.android.com/jetpack/androidx/…
zapotec 21/01
Sim, li o artigo, mas não entendo qual é o problema exato do meu projeto. @zapotec
TeachMeJava
Honestamente, se esse não é o seu problema, não posso ajudá-lo. Se você já tinha "android.useAndroidX = true" e "android.enableJetifier = true" em seu gradle.properties, não faz sentido que seu AndroidStudio não consiga gerenciar o código corretamente. Tenho no meu próprio projeto algumas bibliotecas Kotlin (por exemplo, OkHttp4) e não preciso reescrever meu código no Kotlin. Além disso, nem preciso adicionar o plug-in kotlin ao meu arquivo gradle ... De qualquer forma, é bom que você possa resolver o seu problema ao migrar para o Kotlin!
zapotec 22/01
Existem tantos desenvolvedores que usam esse tipo de bibliotecas juntos. A maioria deles não enfrenta nenhum problema, mas eu enfrento. Estou tentando descobrir se isso é um bug do AS ou não. Eu verifiquei o tamanho das minhas aulas (talvez mais de 500 linhas em um único fragmento quebraram meu projeto etc.), mas não funciona nada. Finalmente eu encontrei 2 opção de fixação. Como eu disse antes, levei 30 dias para descobrir o problema. Não encontrei o motivo exato do problema, mas encontrei uma maneira de corrigir @zapotec
TeachMeJava 22/01
0

Sugiro que você o abra em outro computador, retirando-o do bitbucket e veja se ele age da mesma maneira.

muxammed
fonte
Eu puxei o projeto com 2 computadores diferentes (novos Android Studio instalados), mas o mesmo problema ainda existe @muxammed. Eu adicionei esta etapa à minha lista de verificação.
TeachMeJava