Kopieren und Einfügen kann in Android Studio nicht durchgeführt werden

9

Ich habe zwei Hauptprobleme in Android Studio gehabt. Erstens kann ich in einigen Klassen keine Copy-Paste- und Cut-Paste- Fähigkeiten ( ctrl+ c- ctrl+ v- ctrl+ x) ausführen . Um dieses Problem zu beheben, klicke ich auf "Caches / Neustarts ungültig machen", aber es bricht sofort wieder zusammen.

Das zweite Problem ist (ich denke, es hängt mit dem ersten Problem zusammen), dass der Compiler bereits definierte Methoden und Attribute nicht erkennt. Automatischer Vorschlag usw. funktioniert nicht.

Die Schritte, die ich unternommen habe, um das Problem zu beheben, sind:

  1. Datei -> Caches / Neustarts ungültig machen,
  2. Datei -> Energiesparmodus -> Deaktivieren,
  3. Schließen Sie alle geöffneten Registerkarten und starten Sie neu.
  4. Datei -> Projekt mit Gradle-Dateien synchronisieren,
  5. Datei -> Mit Dateisystem synchronisieren,
  6. JDK löschen und neu installieren,
  7. Android Studio löschen und neu installieren,
  8. Löschen Sie bereits heruntergeladene SDK-Dateien und den Ordner ".Android".
  9. Deaktiviere und lösche alle Plugins.
  10. Überprüfte Keymap zum Kopieren und Einfügen unter Datei -> Einstellungen -> Keymap
  11. Das Projekt wurde von Bitbucket auf verschiedene 2 Computer gezogen
  12. Neues Projekt erstellt, ganze Projektklassen mit NotePad ++ in neues Projekt kopieren
  13. Versuchen Sie, alle Java-Codes in Kotlin zu konvertieren, kann nicht konvertieren

Hier sind meine Systemspezifikationen; Windows 10 Home Single Language (TR), Version 1909. 16 GB RAM. Android Studio 3.5.3 und Gradle Version 3.5.3

Ich habe alle Beiträge über das gleiche Problem gelesen, aber es gibt kein Glück (Die Beiträge beziehen sich nur auf die MAC- und Linux-Plattform).

UPDATE 1.0 -> Ich habe festgestellt, dass einige Klassen die oben beschriebenen Operationen nicht ausführen können, einige Klassen jedoch.

Ich habe festgestellt, dass es keine Symbole für Klassen gibt, die die oben beschriebenen Operationen nicht ausführen können. (Manchmal erscheinen auf magische Weise "J" -Symbole, und wenn ich auf eine andere Klasse geklickt habe, verschwindet dieses J-Symbol sofort.) Ich denke, Gradle oder Dateisystem von Android Studio erkennt diese Dateien nicht als Klassen.

UPDATE 2.0 -> Ich habe festgestellt, dass beim Klicken auf den Abschnitt Struktur von DuoFragment (mit mehr als 500 Zeilencodes und einer der nicht kompilierten Klassen) nichts geladen werden kann. Ist DuoFragment größer zu verarbeiten?

Auch wenn ich den Abschnitt Erstellen überprüft habe, können einige Prozesse nicht ausgeführt werden (ich weiß nicht, ob dies normal ist oder nicht).

  • Aufgabe: App: compileDebugAidl NO-SOURCE,
  • Aufgabe: App: compileDebugRenderscript NO-SOURCE,
  • Aufgabe: app: processDebugJavaRes NO-SOURCE

UPDATE 3.0 ->

Hier sind meine Gradle-Dateien. Gradle-Datei auf Projektebene:

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

Gradle-Datei auf App-Ebene.

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'

}

Kein Vorschlag Keymap Android-Version Die Gradle-Synchronisierung ist erfolgreich, wenn ich keinen zusätzlichen Code hinzufüge

UPDATE 1.0 Bilder

Die Klassen dort haben keine Symbole oder nur das Symbol "J" können keine Operationen ausführen

Wenn ich auf eine andere Klasse geklickt / diese geöffnet habe, ist das Symbol "J" verschwunden

UPDATE 2.0-Bilder

Einige Prozesse können im Abschnitt "Erstellen" nicht ausgeführt werden DuoFragment-Struktur kann nicht geladen werden Zusammenfassung des DuoFragment-Codes

TeachMeJava
quelle
Können Sie einen vollständigen Screenshot Ihres Android Studios bereitstellen? Es ist möglich, dass eine fehlgeschlagene Build / Gradle-Synchronisierung (siehe Ereignisprotokoll oder Ausführung) die Funktionalität beeinträchtigt.
JakeSteam
Vollständiger Screenshot von Android Studio @JakeSteam hinzugefügt. Die Gradle-Synchronisierung ist erfolgreich, wenn ich kein zusätzliches Code-Snippet hinzufüge. (Mein gesamter Projektcode stammt von Bitbucket)
TeachMeJava
Haben Sie überprüft, ob das Kopieren und Einfügen an anderer Stelle funktioniert, z. B. im Browser oder im Texteditor usw.?
Sanket Vekariya
Ja es funktioniert. Es kann nicht nur einige Klassen funktionieren (wie ich schon sagte DuoFragment () Klasse) @SanketVekariya
TeachMeJava
Können Sie uns Ihr build.gradle zeigen? (sowohl vom Projekt als auch vom Hauptmodul). Haben Sie bestimmte java.source-Speicherorte für das Projekt definiert?
Zapotec

Antworten:

1

UPDATE -> Es gibt einen Fehler in Kotlin-Bibliotheken mit Windows 10 Single Language Turkish . (Möglicherweise haben einige andere einsprachige Windows-Distributionen das gleiche Problem, das ich noch nicht kenne.) Einige Bibliotheken von Kotlin können unter türkischen Betriebssystemen nicht funktionieren. Ich habe dieses Problem mit der Installation von Windows 10 Pro English gelöst .

Andere Entwickler, die Windows 10 Single Language Turkish verwenden, haben das gleiche Problem mit unterschiedlichen Blickwinkeln. ( Beispiel1 und Beispiel2 )

ALTE ANTWORT

TL; DR -> Problem sind Bibliotheken von Drittanbietern, die mit Kotlin geschrieben wurden . Ich habe mein Java-Projekt auf Kotlin konvertiert und alle problematischen Bibliotheken von Drittanbietern funktionieren gut. Das Problem betrifft den Java-Kotlin-Konflikt .

Ich möchte mitteilen, wie ich das Problem für diejenigen gelöst habe, die später mit solchen Problemen konfrontiert werden.

Ich habe alle oben genannten Schritte einzeln ausgeführt, konnte jedoch keine Lösung finden und habe mich entschlossen, meine Bibliotheken von Drittanbietern zu untersuchen.

Zunächst habe ich alle Bibliotheken von Drittanbietern deaktiviert und den Status meiner Klassen überprüft, die bereits definierte Methoden und Attribute nicht erkannt haben. Nachdem ich Bibliotheken von Drittanbietern deaktiviert und Rebuild Project und Sync Gradle erstellt hatte, funktionierte die Auto Suggestion-Funktion dieser beschädigten Klassen wieder. Als ich herausfand, welche Bibliotheken von Drittanbietern problematisch waren, aktivierte ich diese Bibliotheken von Drittanbietern nacheinander. Ich habe herausgefunden, welche Bibliotheken von Drittanbietern mein Projekt kaputt gemacht haben.

Es gab 4 Bibliotheken von Drittanbietern, die mein Projekt kaputt gemacht haben : StickySwitch , ProgressView , SequenceLayout und Flashbar . Als ich diese Bibliotheken entfernte, funktionierte alles richtig. Nach dem Entfernen der Bibliotheken war meine Gradle-Datei wie folgt.

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

Was war das gemeinsame Merkmal dieser Bibliotheken, die mein Projekt beschädigten? Mein Projekt wurde mit Java geschrieben, aber die Bibliotheken wurden mit Kotlin geschrieben . Kann ich keine Kotlin-Bibliotheken in meinem Java-Projekt verwenden? Ja, ich kann . Ich muss hinzufügen android.useAndroidX=trueund android.enableJetifier=truein meinen gradle.properties , das ist es. Aber was ist, wenn ich diese Zeilen bereits in meine gradle.properties eingefügt habe und es nicht funktioniert hat?

# 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

Ich habe nicht verstanden, warum Kotlin-Bibliotheken mit meinem Java-Projekt nicht funktionieren können. Wie Sie in meiner Gradle-Datei sehen können , verwende ich apply plugin: 'kotlin-android'und apply plugin: 'kotlin-android-extensions'für die Kotlin-Unterstützung.

Wie habe ich mein Projekt gerettet? Wie ich wusste, standen 2 Optionen zur Verfügung. Während die erste Methode darin bestand, diese 4 Bibliotheken von Drittanbietern zu entfernen und sie nicht verwenden zu können, die zweite darin, alle Java-Klassen in Kotlin-Klassen zu konvertieren (ich habe es zuvor versucht, aber es funktionierte erst, wenn alle Bibliotheken von Drittanbietern deaktiviert wurden). Ich habe mich entschieden, alle Java-Klassen in Kotlin-Klassen zu konvertieren. Somit konnte ich 4 Bibliotheken von Drittanbietern verwenden, die oben erwähnt wurden.

Ich habe 30 Tage gebraucht, um dieses Problem zu lösen. Jetzt arbeite ich an der Kotlin-Sprache. Dadurch läuft mein Projekt problemlos.

TeachMeJava
quelle
Ich denke, es hing mehr mit der Tatsache zusammen, dass diese Bibliotheken (oder Ihre App) Androidx verwenden, als mit Kotlin. Das Ergebnis der Kotlin-Kompilierung entspricht genau dem Java-Code. Schauen Sie sich das über androidx an: developer.android.com/jetpack/androidx/…
zapotec
Ja, ich habe den Artikel gelesen, verstehe aber nicht, was genau das Problem meines Projekts ist. @zapotec
TeachMeJava
Ehrlich gesagt, wenn das nicht dein Problem ist, kann ich dir nicht helfen. Wenn Sie bereits "android.useAndroidX = true" und "android.enableJetifier = true" in Ihren gradle.properties hatten, ist es nicht sinnvoll, dass Ihr AndroidStudio den Code nicht korrekt verwalten kann. Ich habe in meinem eigenen Projekt einige Kotlin-Bibliotheken (zum Beispiel OkHttp4), und ich muss meinen Code in Kotlin nicht neu schreiben. Außerdem muss ich nicht einmal das Kotlin-Plugin zu meiner Gradle-Datei hinzufügen ..... Wie auch immer, es ist schön, dass Sie Ihr Problem lösen können, wenn Sie nach Kotlin migrieren!
Zapotec
Es gibt so viele Entwickler, die diese Art von Bibliotheken zusammen verwenden. Die meisten von ihnen haben kein Problem, aber ich. Ich versuche herauszufinden, ob das ein AS-Fehler ist oder nicht. Ich habe meine Klassengrößen überprüft (vielleicht haben mehr als 500 Zeilen in einem einzelnen Fragment mein Projekt beschädigt usw.), aber es funktioniert nichts. Endlich habe ich 2 Befestigungsmöglichkeiten gefunden. Wie ich bereits sagte, habe ich 30 Tage gebraucht, um das Problem herauszufinden. Ich habe keinen genauen Grund für das Problem gefunden, aber ich habe einen Fixierungsweg gefunden @zapotec
TeachMeJava
0

Ich schlage vor, dass Sie es auf einem anderen Computer öffnen, indem Sie es aus dem Bitbucket ziehen und prüfen, ob es sich genauso verhält

muxammed
quelle
Ich habe das Projekt mit 2 verschiedenen (frisch installierten Android Studio) Computern gezogen, aber das gleiche Problem besteht immer noch bei @muxammed. Ich habe diesen Schritt meiner Checkliste hinzugefügt.
TeachMeJava