web-dev-qa-db-fra.com

Impossible d'effectuer un copier-coller dans Android Studio

J'ai rencontré deux problèmes principaux dans Android Studio. Tout d'abord, je ne peux pas effectuer copier-coller et couper-coller (ctrl+cctrl+vctrl+x) capacités dans certaines classes. Pour résoudre ce problème, je clique sur "caches/redémarrages invalides", mais il se décompose à nouveau immédiatement.

Le deuxième problème est (je pense que c'est lié au premier problème) que le compilateur ne reconnaît pas les méthodes et les attributs déjà définis. La suggestion automatique, etc. ne fonctionne pas.

Les mesures que j'ai prises pour essayer de résoudre le problème sont;

  1. Fichier -> caches/redémarrages invalides,
  2. Fichier -> Mode d'économie d'énergie -> Désactiver,
  3. Fermez tous les onglets ouverts et redémarrez à nouveau,
  4. Fichier -> Projet de synchronisation avec les fichiers Gradle,
  5. Fichier -> Synchroniser avec le système de fichiers,
  6. Supprimez JDK et réinstallez,
  7. Supprimer Android Studio et réinstaller,
  8. Supprimer les fichiers SDK déjà téléchargés et le dossier ".Android",
  9. Désactivez et supprimez tous les plugins.
  10. Keymap copier-coller vérifié dans Fichier -> Paramètres -> Keymap
  11. Tiré le projet de bitbucket vers différents 2 ordinateurs
  12. Création d'un nouveau projet, copie de classes de projet entières avec NotePad ++ dans un nouveau projet
  13. Essayez de convertir tous les codes Java en Kotlin, impossible de convertir

Voici mes spécifications système; Windows 10 Home Single Language (TR), version 1909. 16 Go de RAM. Android Studio 3.5.3 et Gradle version 3.5.3

J'ai lu tous les articles sur le même problème mais il n'y a pas de chance (les articles ne concernent que les plates-formes MAC et Linux).

MISE À JOUR 1.0 -> J'ai découvert que certaines classes ne peuvent pas effectuer les opérations décrites ci-dessus, mais certaines classes le peuvent.

J'ai réalisé que, Il n'y a pas d'icônes pour les classes qui ne peuvent pas faire les opérations que j'ai décrites ci-dessus. (Parfois, les icônes "J" apparaissent comme par magie et lorsque je clique sur une autre classe, cette icône J disparaît immédiatement.) Je pense que gradle ou le système de fichiers de Android Studio ne reconnaît pas ces fichiers en tant que classes.

MISE À JOUR 2.0 -> J'ai remarqué que lorsque j'ai cliqué sur la section Structure de DuoFragment (qui a plus de 500 codes de lignes et l'une des classes non compilées) ne peut pas charger n'importe quoi. La taille de DuoFragment est-elle plus grande à traiter?

De plus, lorsque j'ai vérifié la section Build, certains processus ne peuvent pas s'exécuter (je ne sais pas si cela est normal ou non);

  • Tâche: application: compileDebugAidl NO-SOURCE,
  • Tâche: application: compileDebugRenderscript NO-SOURCE,
  • Tâche: application: processDebugJavaRes NO-SOURCE

MISE À JOUR 3.0 ->

Voici mes fichiers Gradle. Fichier Gradle au niveau du projet:

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

Fichier Gradle au niveau de l'application.

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'

}

No SuggestionKeymapAndroid VersionGradle sync is successfully if I do not add additional code

MISE À JOUR 1.0 Images

The classes there are no icons or only have "J" icon cannot do operations

When I clicked/opened another class, "J" icon disappeared

MISE À JOUR des images 2.0

Some process cannot be done in Build sectionCannot load DuoFragment structureDuoFragment code summary

9
TeachMeJava

MISE À JOUR -> Il y a un bogue dans les bibliothèques Kotlin avec Windows 10 turc unilingue . (Peut-être que certaines autres distributions Windows en un seul langage ont le même problème, je ne le sais pas encore.) Certaines bibliothèques de Kotlin ne peuvent pas fonctionner sur le système d'exploitation turc. J'ai résolu ce problème lors de l'installation de Windows 10 Pro en anglais .

D'autres développeurs qui utilisent le turc unilingue Windows 10 sont confrontés au même problème sous des angles différents. ( Exemple1 et Exemple2 )

ANCIENNE RÉPONSE

TL; DR -> Le problème concerne les bibliothèques tierces qui sont écrites avec Kotlin . J'ai converti mon Java en Kotlin et toutes les bibliothèques tierces problématiques fonctionnent bien. Le problème concerne environ Java - Kotlin conflit .

Je voudrais partager comment j'ai résolu le problème pour ceux qui seront confrontés à de tels problèmes plus tard.

J'ai fait toutes les étapes que j'ai mentionnées ci-dessus une par une mais je n'ai trouvé aucune solution et j'ai décidé d'examiner mes bibliothèques tierces.

Tout d'abord, j'ai désactivé toutes les bibliothèques tierces et regardé le statut de mes classes qui ne reconnaissaient pas les méthodes et les attributs déjà définis. Après avoir désactivé les bibliothèques tierces et créé Rebuild Project et Sync Gradle, la fonction de suggestion automatique de ces classes corrompues a recommencé à fonctionner.Puis, découvrant les bibliothèques tierces qui posaient problème, j'ai activé ces bibliothèques tierces une par une. J'ai trouvé les bibliothèques tierces qui ont interrompu mon projet.

Il y avait 4 bibliothèques tierces qui ont cassé mon projet: StickySwitch , ProgressView , SequenceLayout et Flashbar . Quand j'ai supprimé ces bibliothèques, tout fonctionnait bien. Après avoir supprimé les bibliothèques, mon fichier Gradle était comme ci-dessous.

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

Alors, quelle était la caractéristique commune de ces bibliothèques qui corrompent mon projet? Mon projet a été écrit avec Java mais ces bibliothèques ont été écrites avec Kotlin . Une seconde, ne puis-je pas utiliser les bibliothèques Kotlin dans mon Java? Oui, je peux . Je dois ajouter Android.useAndroidX=true et Android.enableJetifier=true dans mon gradle.properties, c'est tout. Mais que faire si j'ai déjà ajouté ces lignes dans mon gradle.properties et que cela n'a pas fonctionné?

# 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

Je n'ai pas compris pourquoi les bibliothèques kotlin ne peuvent pas fonctionner avec mon Java. Comme vous pouvez le voir dans mon fichier Gradle, j'utilise apply plugin: 'kotlin-Android' et apply plugin: 'kotlin-Android-extensions' pour le support de Kotlin.

Comment j'ai sauvé mon projet? Il y avait 2 options disponibles comme je le savais. Alors que la première méthode consistait à supprimer ces 4 bibliothèques tierces et ne pouvait pas les utiliser, la seconde à convertir toutes les classes Java en classes Kotlin (je l'ai essayé avant mais cela n'a fonctionné que lorsque désactivé) toutes les bibliothèques tierces). J'ai choisi de convertir toutes les classes Java en classes Kotlin. Ainsi, j'ai pu utiliser 4 bibliothèques tierces mentionnées ci-dessus.

Il m'a fallu 30 jours pour résoudre ce problème. Maintenant, je travaille sur la langue Kotlin. En conséquence, mon projet s'exécute sans problème.

1
TeachMeJava

Je vous suggère de l'ouvrir sur un autre ordinateur en le tirant de bitbucket et de voir s'il s'agit du même

0
muxammed