Saltar al contenido

No se puede realizar copiar y pegar en Android Studio

Luego de investigar con expertos en esta materia, programadores de deferentes ramas y maestros hemos dado con la respuesta al dilema y la compartimos en esta publicación.

Solución:

ACTUALIZAR –> Hay un error en las bibliotecas de Kotlin con Turco en un solo idioma de Windows 10. (Tal vez algunas de las otras distribuciones de Windows de un solo idioma tengan el mismo problema, aún no lo he sabido). Algunas bibliotecas de Kotlin no pueden funcionar en el sistema operativo turco. Resolví este problema con la instalación Windows 10 Pro Inglés.

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

RESPUESTA ANTIGUA

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 de terceros problemáticas 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 ya definidos y attributes. 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 era 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:[email protected]'
    implementation 'com.daimajia.androidanimations:library:[email protected]'

    //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 fue la característica común de esas bibliotecas que corrompieron mi proyecto? Mi proyecto fue escrito con Java pero que las bibliotecas fueron escritas con kotlin. Un segundo, ¿no puedo usar las bibliotecas de Kotlin en mi proyecto de Java? Sí, puedo. tengo que agregar android.useAndroidX=true y android.enableJetifier=true en mi gradle.properties, eso es. Pero, ¿y si ya he añadido esas líneas en mi gradle.properties y no ha funcionado?

# 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 he entendido por qué las bibliotecas de Kotlin no pueden funcionar con mi proyecto Java. Como puedes ver en mi archivo GradleEstoy usando apply plugin: 'kotlin-android' y apply plugin: 'kotlin-android-extensions' para el soporte de Kotlin.

¿Cómo he rescatado mi proyecto? Había 2 opciones disponibles como yo 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 probé 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 tomó 30 días para resolver este problema. Ahora, estoy trabajando en el lenguaje Kotlin. Como resultado, mi proyecto se está ejecutando sin ningún problema.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *