J'ai rencontré deux problèmes principaux dans Android Studio. Tout d'abord, je ne peux pas exécuter les capacités copier-coller et couper-coller ( ctrl+ c- ctrl+ v- ctrl+ x) 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 étapes que j'ai prises pour essayer de résoudre le problème sont;
- Fichier -> caches / redémarrages invalides,
- Fichier -> Mode d'économie d'énergie -> Désactiver,
- Fermez tous les onglets ouverts et redémarrez à nouveau,
- Fichier -> Projet de synchronisation avec les fichiers Gradle,
- Fichier -> Synchroniser avec le système de fichiers,
- Supprimez JDK et réinstallez,
- Supprimez Android Studio et réinstallez,
- Supprimer les fichiers SDK déjà téléchargés et le dossier ".Android",
- Désactivez et supprimez tous les plugins.
- Keymap copier-coller vérifié dans Fichier -> Paramètres -> Keymap
- Tiré le projet de bitbucket vers différents 2 ordinateurs
- Création d'un nouveau projet, copie de classes de projet entières avec NotePad ++ dans un nouveau projet
- 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).
UPDATE 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, des 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 d'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 contient plus de 500 codes de lignes et l'une des classes non compilées) ne peut rien charger. 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'
}
MISE À JOUR 1.0 Images
UPDATE 2.0 Images
la source
Réponses:
MISE À JOUR -> Il y a un bogue dans les bibliothèques Kotlin avec Windows 10 Single Language Turkish . (Peut-être que certaines autres distributions Windows en une seule langue 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 avec l'installation de Windows 10 Pro en anglais .
Les autres développeurs qui utilisent le turc unilingue Windows 10 sont confrontés au même problème sous des angles différents. ( Exemple 1 et Exemple 2 )
RÉPONSE ANCIENNE
TL; DR -> Le problème concerne les bibliothèques tierces écrites avec Kotlin . J'ai converti mon projet Java en Kotlin et toutes les bibliothèques tierces problématiques fonctionnent bien. Le problème concerne le conflit Java - Kotlin .
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 fonctionnalité de suggestion automatique de ces classes corrompues a recommencé à fonctionner.Puis, découvrant quelles bibliothèques tierces étaient problématiques, 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 . Lorsque j'ai supprimé ces bibliothèques, tout fonctionnait bien. Après avoir supprimé les bibliothèques, mon fichier Gradle était comme ci-dessous.
Alors, quelle était la caractéristique commune de ces bibliothèques qui corrompent mon projet? Mon projet a été écrit avec Java mais les bibliothèques ont été écrites avec Kotlin . Une seconde, ne puis-je pas utiliser les bibliothèques Kotlin dans mon projet Java? Oui, je peux . Je dois ajouter
android.useAndroidX=true
etandroid.enableJetifier=true
dans mes gradle.properties , c'est tout. Mais que se passe-t-il si j'ai déjà ajouté ces lignes dans mon gradle.properties et que cela n'a pas fonctionné?Je n'ai pas compris pourquoi les bibliothèques kotlin ne peuvent pas fonctionner avec mon projet Java. Comme vous pouvez le voir dans mon fichier Gradle , j'utilise
apply plugin: 'kotlin-android'
etapply plugin: 'kotlin-android-extensions'
pour le support 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 ne fonctionnait pas jusqu'à ce que toutes les bibliothèques tierces soient désactivées). 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 aucun problème.
la source
Je vous suggère de l'ouvrir sur un autre ordinateur en le tirant de bitbucket et de voir s'il agit de la même façon
la source