Impossibile eseguire Copia-incolla in Android Studio


9

Ho riscontrato due problemi principali in Android Studio. Prima di tutto non riesco ad eseguire le abilità copia-incolla e taglia-incolla ( ctrl+ c- ctrl+ v- ctrl+ x) in alcune classi. Per risolvere il problema, faccio clic su "invalide cache / riavvii", ma si interrompe immediatamente.

Il secondo problema è (penso che sia correlato al primo problema) il compilatore non riconosce metodi e attributi già definiti. Il suggerimento automatico ecc. Non funziona.

I passaggi che ho preso per cercare di risolvere il problema sono;

  1. File -> invalide cache / riavvii,
  2. File -> Modalità risparmio energia -> Disabilita,
  3. Chiudi tutte le schede aperte e riavvia nuovamente,
  4. File -> Sincronizza progetto con file Gradle,
  5. File -> Sincronizza con file system,
  6. Elimina JDK e reinstalla,
  7. Elimina Android Studio e reinstalla,
  8. Elimina i file SDK e la cartella ".Android" già scaricati,
  9. Disabilita ed elimina tutti i plugin.
  10. Keymap copia-incolla selezionato in File -> Impostazioni -> Keymap
  11. Estratto il progetto da bitbucket a diversi 2 computer
  12. Creato nuovo progetto, copia intere classi di progetto con NotePad ++ nel nuovo progetto
  13. Prova a convertire tutti i codici Java in Kotlin, impossibile convertire

Ecco le mie specifiche di sistema; Windows 10 Home Single Language (TR), versione 1909. 16 GB di RAM. Android Studio 3.5.3 e Gradle Versione 3.5.3

Ho letto tutti i post sullo stesso problema, ma non c'è fortuna (i post riguardano solo la piattaforma MAC e Linux).

AGGIORNAMENTO 1.0 -> Ho scoperto che alcune classi non possono eseguire le operazioni sopra descritte, ma alcune classi possono.

Mi sono reso conto che, non ci sono icone per le classi che non possono eseguire le operazioni che ho descritto sopra. (A volte appare magicamente l'icona "J" e quando ho fatto clic su un'altra classe, questa icona J scompare immediatamente. Penso che il gradle o il file system di Android Studio non riconosca questi file come classi.

AGGIORNAMENTO 2.0 -> Ho notato che quando ho fatto clic sulla sezione Struttura di DuoFragment (che ha oltre 500 codici di linee e una della classe non compilata) non è possibile caricare nulla. Le dimensioni di DuoFragment sono più grandi da elaborare?

Inoltre, quando ho controllato la sezione Build, alcuni processi non possono essere eseguiti (non so se questo è normale o no);

  • Attività: app: compileDebugAidl NO-SOURCE,
  • Attività: app: compileDebugRenderscript NO-SOURCE,
  • Attività: app: processDebugJavaRes NO-SOURCE

AGGIORNAMENTO 3.0 ->

Ecco i miei file Gradle. File Gradle a livello di progetto:

// 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
}

File Gradle a livello di app.

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'

}

Nessun suggerimento keymap Versione Android La sincronizzazione dei voti ha esito positivo se non aggiungo codice aggiuntivo

AGGIORNAMENTO 1.0 Immagini

Le classi in cui non sono presenti icone o hanno solo l'icona "J" non possono eseguire operazioni

Quando ho cliccato / aperto un'altra classe, l'icona "J" è scomparsa

AGGIORNAMENTO 2.0 Immagini

Alcuni processi non possono essere eseguiti nella sezione Build Impossibile caricare la struttura DuoFragment Riepilogo del codice DuoFragment


Puoi fornire uno screenshot completo del tuo Android Studio? È possibile che una sincronizzazione build / gradle non riuscita (vedi Registro eventi o Esegui) interrompa la funzionalità.
JakeSteam,

Aggiunto screenshot completo di Android Studio @JakeSteam. La sincronizzazione dei voti ha esito positivo, se non aggiungo alcun frammento di codice aggiuntivo. (L'intero codice del mio progetto proviene da Bitbucket)
TeachMeJava,

hai controllato se copia e incolla funzionano altrove come browser o editor di testo ecc.?
Sanket Vekariya il

Sì funziona. Non può funzionare solo con alcune classi (come ho detto DuoFragment () classe) @SanketVekariya
TeachMeJava

Puoi mostrarci il tuo build.gradle? (da entrambi, il progetto e il modulo principale). Hai definito posizioni specifiche java.source per il progetto?
zapotec,

Risposte:


1

AGGIORNAMENTO -> Esiste un bug nelle librerie di Kotlin con Windows 10 Single Language Turkish . (Forse alcune delle altre distribuzioni Windows in Single Language hanno lo stesso problema, non l'ho ancora saputo.) Alcune librerie di Kotlin non possono funzionare sul sistema operativo turco. Ho risolto questo problema con l'installazione di Windows 10 Pro English .

Altri sviluppatori che usano il linguaggio turco 10 di Windows 10 devono affrontare lo stesso problema con diverse angolazioni. ( Esempio 1 ed Esempio2 )

VECCHIA RISPOSTA

TL; DR -> Il problema riguarda le librerie di terze parti scritte con Kotlin . Ho convertito il mio progetto Java in Kotlin e tutte le librerie di terze parti problematiche funzionano bene. Il problema riguarda il conflitto Java - Kotlin .

Vorrei condividere come ho risolto il problema per coloro che dovranno affrontare tali problemi in seguito.

Ho fatto tutti i passaggi di cui sopra uno per uno, ma non sono riuscito a trovare alcuna soluzione e ho deciso di esaminare le mie librerie di terze parti.

Prima di tutto, ho disabilitato tutte le librerie di terze parti e ho esaminato lo stato delle mie classi che non riconoscevano metodi e attributi già definiti. Dopo aver disabilitato le librerie di terze parti e aver creato Rebuild Project e Sync Gradle, la funzione di suggerimento automatico di quelle classi danneggiate ha ripreso a funzionare, quindi, scoprendo quali librerie di terze parti erano problematiche, ho attivato quelle librerie di terze parti una per una. Ho scoperto quali librerie di terze parti hanno rotto il mio progetto.

C'erano 4 librerie di terze parti che hanno rotto il mio progetto: StickySwitch , ProgressView , SequenceLayout e Flashbar . Quando ho rimosso quelle librerie, tutto ha funzionato bene. Dopo aver rimosso le librerie, il mio file Gradle era come di seguito.

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'
}

Quindi, qual è stata la caratteristica comune di quelle librerie che corrompono il mio progetto? Il mio progetto è stato scritto con Java ma che le librerie sono state scritte con Kotlin . Un secondo, non posso usare le librerie Kotlin nel mio progetto Java? Sì, posso . Devo aggiungere android.useAndroidX=truee android.enableJetifier=truenel mio gradle.properties , questo è tutto. Ma cosa succede se ho già aggiunto quelle righe nella mia gradle.properties e non ha funzionato?

# 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

Non ho capito perché le librerie kotlin non possano funzionare con il mio progetto Java. Come puoi vedere nel mio file Gradle , sto usando apply plugin: 'kotlin-android'e apply plugin: 'kotlin-android-extensions'per il supporto di Kotlin.

Come ho salvato il mio progetto? C'erano 2 opzioni disponibili come sapevo. Mentre il primo metodo era quello di rimuovere quelle 4 librerie di terze parti e non potevano usarle, il secondo quello di convertire tutte le classi Java in classi Kotlin (l'ho provato prima ma non ha funzionato fino a quando non ha disabilitato tutte le librerie di terze parti). Ho scelto di convertire tutte le classi Java in classi Kotlin. Pertanto, sono stato in grado di utilizzare 4 librerie di terze parti menzionate sopra.

Mi ci sono voluti 30 giorni per risolvere questo problema. Ora sto lavorando sul linguaggio Kotlin. Di conseguenza, il mio progetto è in esecuzione senza alcun problema.


Penso che fosse più correlato al fatto di quelle librerie (o della tua app) che usano androidx che a causa di Kotlin. Il risultato della compilazione di Kotlin è esattamente lo stesso del codice java. Guarda questo su androidx: developer.android.com/jetpack/androidx/…
zapotec

Sì, ho letto l'articolo ma non capisco qual è il problema esatto del mio progetto. @zapotec
TeachMeJava

Onestamente, se non è questo il tuo problema, non posso aiutarti. Se hai già "android.useAndroidX = true" e "android.enableJetifier = true" in gradle.properties, non ha senso che AndroidStudio non sia in grado di gestire correttamente il codice. Nel mio progetto ho alcune librerie di Kotlin (ad esempio OkHttp4) e non ho bisogno di riscrivere il mio codice in Kotlin. Inoltre, non ho nemmeno bisogno di aggiungere il plugin kotlin al mio file gradle ..... Comunque, è bello che tu possa risolvere il tuo problema durante la migrazione a Kotlin!
zapotec,

Ci sono così tanti sviluppatori che usano questo tipo di librerie insieme. Molti di loro non affrontano alcun problema, ma io lo faccio. Sto cercando di capire se si tratta di un bug AS o meno. Ho controllato le dimensioni delle mie classi (forse più di 500 righe in un singolo frammento hanno rotto il mio progetto ecc.) Ma non funziona nulla. Alla fine ho trovato 2 opzioni di fissaggio. Come ho detto prima, mi ci sono voluti 30 giorni per capire il problema. Non ho trovato il motivo esatto del problema, ma ho trovato un modo per risolvere @zapotec
TeachMeJava

0

Ti suggerisco di aprirlo su un altro computer estraendolo da bitbucket e vedere se funziona allo stesso modo


Ho realizzato il progetto con 2 computer diversi (Android Studio appena installato) ma lo stesso problema persiste ancora @muxammed. Ho aggiunto questo passaggio alla mia lista di controllo.
TeachMeJava
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.