No se puede realizar copiar y pegar en Android Studio

9

Me he enfrentado a dos problemas principales en Android Studio. En primer lugar, no puedo realizar las funciones copiar-pegar y cortar-pegar ( ctrl+ c- ctrl+ v- ctrl+ x) en algunas clases. Para solucionar ese problema, hago clic en "invalidar cachés / reinicios", pero se descompone nuevamente de inmediato.

El segundo problema es (creo que está relacionado con el primer problema) el compilador no reconoce métodos y atributos ya definidos. La sugerencia automática, etc., no funciona.

Los pasos que he tomado para intentar solucionar el problema son;

  1. Archivo -> invalidar cachés / reinicios,
  2. Archivo -> Modo de ahorro de energía -> Desactivar,
  3. Cierre todas las pestañas abiertas y reinicie nuevamente,
  4. Archivo -> Proyecto de sincronización con archivos Gradle,
  5. Archivo -> Sincronizar con el sistema de archivos,
  6. Eliminar JDK y reinstalar,
  7. Eliminar Android Studio y reinstalar,
  8. Elimine los archivos SDK ya descargados y la carpeta ".Android",
  9. Deshabilita y elimina todos los complementos.
  10. Comprobado copiar-pegar mapa de teclas en Archivo -> Configuración -> Mapa de teclas
  11. Trasladó el proyecto de bitbucket a diferentes 2 computadoras
  12. Nuevo proyecto creado, copie clases de proyecto completas con NotePad ++ a un nuevo proyecto
  13. Intenta convertir todos los códigos Java a Kotlin, no puedes convertir

Aquí están las especificaciones de mi sistema; Windows 10 Home Single Language (TR), versión 1909. 16 GB de RAM. Android Studio 3.5.3 y Gradle Versión 3.5.3

He leído todas las publicaciones sobre el mismo problema, pero no hay suerte (las publicaciones son solo sobre la plataforma MAC y Linux).

ACTUALIZACIÓN 1.0 -> He descubierto que algunas clases no pueden realizar las operaciones descritas anteriormente, pero algunas clases sí.

Me di cuenta de que no hay iconos para las clases que no pueden realizar las operaciones que he descrito anteriormente. (A veces aparece mágicamente los íconos "J" y cuando hago clic en otra clase, este ícono J desaparece inmediatamente.) Creo que Gradle o el sistema de archivos de Android Studio no reconoce estos archivos como clases.

ACTUALIZACIÓN 2.0 -> Me di cuenta de que cuando hice clic en la sección Estructura de DuoFragment (que tiene más de 500 códigos de líneas y una de la clase sin compilar) no se puede cargar nada. ¿El tamaño de DuoFragment es más grande de procesar?

Además, cuando verifiqué la sección Compilar, algunos procesos no se pueden ejecutar (no sé si esto es normal o no);

  • Tarea: aplicación: compileDebugAidl NO-SOURCE,
  • Tarea: aplicación: compileDebugRenderscript NO-SOURCE,
  • Tarea: aplicación: processDebugJavaRes NO-SOURCE

ACTUALIZACIÓN 3.0 ->

Aquí están mis archivos Gradle. Archivo de Gradle de nivel de proyecto:

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

Archivo Gradle de nivel de aplicación.

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'

}

Ninguna sugerencia Mapa de teclas Versión de Android La sincronización de Gradle se realiza correctamente si no agrego código adicional

ACTUALIZAR 1.0 Imágenes

Las clases que no tienen íconos o solo tienen ícono "J" no pueden realizar operaciones

Cuando hice clic / abrí otra clase, el ícono "J" desapareció

ACTUALIZAR 2.0 Imágenes

Algún proceso no se puede hacer en la sección Build No se puede cargar la estructura DuoFragment Resumen del código de DuoFragment

TeachMeJava
fuente
¿Puedes proporcionar una captura de pantalla completa de tu Android Studio? Es posible que una sincronización fallida de compilación / gradle (ver Registro de eventos o Ejecutar) rompa la funcionalidad.
JakeSteam
Se agregó una captura de pantalla completa de Android Studio @JakeSteam. La sincronización de Gradle se realiza correctamente si no agrego ningún fragmento de código adicional. (Todo el código de mi proyecto proviene de Bitbucket)
TeachMeJava
¿ha verificado si copiar y pegar funciona en otro lugar, como el navegador o el editor de texto, etc.?
Sanket Vekariya
Si, funciona. No puede funcionar solo en algunas clases (como dije en la clase DuoFragment ()) @SanketVekariya
TeachMeJava
¿Puedes mostrarnos tu build.gradle? (de ambos, el proyecto y el módulo principal). ¿Definió ubicaciones específicas de java.source para el proyecto?
zapoteco

Respuestas:

1

ACTUALIZACIÓN -> Hay un error en las bibliotecas de Kotlin con Windows 10 Single Language Turkish . (Tal vez algunas de las otras distribuciones de Windows en un solo idioma tienen el mismo problema, aún no lo sé). Algunas bibliotecas de Kotlin no pueden funcionar en el sistema operativo turco. Resolví este problema con la instalación de Windows 10 Pro English .

Otros desarrolladores que usan Windows 10 Single Language Turkish enfrentan el mismo problema con diferentes ángulos. ( Ejemplo 1 y Ejemplo 2 )

ANTIGUA RESPUESTA

TL; DR -> El problema es sobre bibliotecas de terceros que están escritas con Kotlin . He convertido mi proyecto Java a Kotlin y todas las bibliotecas problemáticas de terceros funcionan bien. El problema es sobre el conflicto Java - Kotlin .

Me gustaría compartir cómo resolví el problema para aquellos que enfrentarán tales problemas más adelante.

Hice todos los pasos que mencioné anteriormente uno por uno, pero no pude encontrar ninguna solución y decidí examinar mis bibliotecas de terceros.

En primer lugar, deshabilité todas las bibliotecas de terceros y miré el estado de mis clases que no reconocían los métodos y atributos ya definidos. Después de deshabilitar las bibliotecas de terceros y hacer Rebuild Project y Sync Gradle, la función de Sugerencia automática de esas clases dañadas comenzó a funcionar nuevamente. Luego, al descubrir qué bibliotecas de terceros eran problemáticas, activé esas bibliotecas de terceros una por una. Encontré qué bibliotecas de terceros rompieron mi proyecto.

Hubo 4 bibliotecas de terceros que rompieron mi proyecto: StickySwitch , ProgressView , SequenceLayout y Flashbar . Cuando eliminé esas bibliotecas, todo funcionó bien. Después de eliminar las bibliotecas, mi archivo Gradle fue el siguiente.

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

Entonces, ¿cuál era la característica común de esas bibliotecas que corrompen mi proyecto? Mi proyecto fue escrito con Java pero esas bibliotecas fueron escritas con Kotlin . Un segundo, ¿no puedo usar las bibliotecas Kotlin en mi proyecto Java? Si puedo . Tengo que agregar android.useAndroidX=truey android.enableJetifier=trueen mi gradle.properties , eso es todo. Pero, ¿qué pasa si ya he agregado esas líneas en mi gradle.properties y no funcionó?

# 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

No entiendo por qué las bibliotecas kotlin no pueden funcionar con mi proyecto Java. Como puede ver en mi archivo Gradle , estoy usando apply plugin: 'kotlin-android'y apply plugin: 'kotlin-android-extensions'para soporte de Kotlin.

¿Cómo he rescatado mi proyecto? Había 2 opciones disponibles como sabía. Si bien el primer método fue eliminar esas 4 bibliotecas de terceros y no poder usarlas, el segundo fue convertir todas las clases de Java a clases de Kotlin (lo intenté antes pero no funcionó hasta que deshabilité todas las bibliotecas de terceros). Elegí convertir todas las clases de Java a clases de Kotlin. Por lo tanto, pude usar 4 bibliotecas de terceros que se mencionaron anteriormente.

Me llevó 30 días resolver este problema. Ahora estoy trabajando en el idioma Kotlin. Como resultado, mi proyecto se ejecuta sin ningún problema.

TeachMeJava
fuente
Creo que estaba más relacionado con el hecho de que esas bibliotecas (o su aplicación) usan androidx que debido a Kotlin. El resultado de compilación de Kotlin es exactamente el mismo que el código de Java. Mira esto sobre androidx: developer.android.com/jetpack/androidx/…
zapotec
Sí, he leído el artículo pero no entiendo cuál es el problema exacto de mi proyecto. @zapotec
TeachMeJava
Honestamente, si ese no es tu problema, no puedo ayudarte. Si ya tenía "android.useAndroidX = true" y "android.enableJetifier = true" en su gradle.properties, no tiene sentido que su AndroidStudio no pueda administrar el código correctamente. Tengo en mi propio proyecto algunas bibliotecas de Kotlin (por ejemplo OkHttp4), y no necesito volver a escribir mi código en Kotlin. Además, ni siquiera necesito agregar el complemento kotlin a mi archivo gradle ... De todos modos, ¡es bueno que puedas resolver tu problema si migro a Kotlin!
zapoteco
Hay tantos desarrolladores que usan este tipo de bibliotecas juntos. La mayoría de ellos no enfrentan ningún problema, pero yo sí. Estoy tratando de averiguar si eso es un error AS o no. He verificado el tamaño de mis clases (quizás más de 500 líneas en un solo fragmento rompieron mi proyecto, etc.) pero no funciona. Finalmente encontré 2 opciones de fijación. Como dije antes, me llevó 30 días resolver el problema. No encontré la razón exacta del problema, pero encontré una forma de solucionarlo @zapotec
TeachMeJava
0

Le sugiero que lo abra en otra computadora sacándolo del bitbucket, y vea si funciona igual

muxammed
fuente
Saqué el proyecto con 2 computadoras diferentes (Android Studio recién instalado) pero todavía existe el mismo problema @muxammed. He agregado este paso a mi lista de verificación.
TeachMeJava