Не удается выполнить копирование-вставку в Android Studio

9

Я столкнулся с двумя основными проблемами в Android Studio. Прежде всего, я не могу выполнять способности копирования и вставки ( ctrl+ c- ctrl+ v- ctrl+ x) в некоторых классах. Чтобы устранить эту проблему, я нажимаю «недействительные кэши / перезапуски», но она сразу же выходит из строя.

Вторая проблема (я думаю, это связано с первой проблемой), компилятор не распознает уже определенные методы и атрибуты. Авто предложение и т.д. не работает.

Шаги, которые я предпринял, чтобы попытаться решить проблему:

  1. Файл -> недействительные кэши / перезапуски,
  2. Файл -> Режим энергосбережения -> Отключить,
  3. Закройте все открытые вкладки и перезапустите,
  4. Файл -> Синхронизировать проект с файлами Gradle,
  5. Файл -> Синхронизировать с файловой системой,
  6. Удалить JDK и переустановить,
  7. Удалить Android Studio и переустановить,
  8. Удалить уже загруженные файлы SDK и папку «.Android»,
  9. Отключить и удалить все плагины.
  10. Проверено копирование-вставка раскладки клавиатуры в Файл -> Настройки -> Карта раскладок
  11. Перетянул проект с bitbucket на разные 2 компьютера
  12. Создан новый проект, скопируйте целые классы проекта с помощью NotePad ++ в новый проект
  13. Попробуйте конвертировать все коды Java в Kotlin, не можете конвертировать

Вот мои технические характеристики системы; Windows 10 Home Single Language (TR), версия 1909. 16 ГБ ОЗУ. Android Studio 3.5.3 и Gradle Версия 3.5.3

Я прочитал все посты об одной и той же проблеме, но не повезло (посты только о MAC и платформе Linux).

ОБНОВЛЕНИЕ 1.0 -> Я обнаружил, что некоторые классы не могут выполнять операции, описанные выше, но некоторые классы могут.

Я понял, что для классов нет значков, которые не могут выполнять операции, описанные выше. (Иногда волшебным образом появляются значки «J», и когда я щелкаю по другому классу, этот значок J сразу исчезает.) Я думаю, что gradle или файловая система Android Studio не распознает эти файлы как классы.

ОБНОВЛЕНИЕ 2.0 -> Я заметил, что, когда я щелкнул раздел Структура в DuoFragment (который имеет 500+ строк кода и один из некомпилированного класса), не может ничего загрузить. Размер DuoFragment больше для обработки?

Также, когда я проверил раздел Build, некоторые процессы не могут запускаться (я не знаю, нормально это или нет);

  • Задача: app: compileDebugAidl NO-SOURCE,
  • Задача: app: compileDebugRenderscript NO-SOURCE,
  • Задача: app: processDebugJavaRes NO-SOURCE

ОБНОВЛЕНИЕ 3.0 ->

Вот мои файлы Gradle. Файл Gradle уровня проекта:

// 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 файл.

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'

}

Нет предложений Раскладка Версия для Android Gradle Sync успешно, если я не добавляю дополнительный код

ОБНОВЛЕНИЕ 1.0 Изображения

У классов нет значков или только значок "J" не может выполнять операции

Когда я щелкнул / открыл другой класс, значок "J" исчез

ОБНОВЛЕНИЕ 2.0 Изображения

Некоторый процесс не может быть выполнен в разделе Build Не удается загрузить структуру DuoFragment Сводка кода DuoFragment

TeachMeJava
источник
Можете ли вы предоставить полный скриншот вашей Android Studio? При неудачной синхронизации сборки / gradle (см. Журнал событий или Выполнение) возможно нарушение функциональности.
JakeSteam
Добавлен полный скриншот Android Studio @JakeSteam. Gradle Syncing успешно, если я не добавляю дополнительный фрагмент кода. (Весь мой код проекта
взят
Вы проверили, работают ли копирование и вставка в другом месте, например в браузере, текстовом редакторе и т. д.?
Санкет Векария
Да, это работает. Он не может работать только с некоторыми классами (как я уже сказал, класс DuoFragment ()) @SanketVekariya
TeachMeJava
Можете ли вы показать нам свой build.gradle? (как из проекта, так и из основного модуля). Вы определили конкретные местоположения java.source для проекта?
сапотеко

Ответы:

1

ОБНОВЛЕНИЕ -> В библиотеках Kotlin с Windows 10 Single Language Turkish есть ошибка . (Возможно, некоторые другие дистрибутивы Windows с одним языком имеют ту же проблему, я еще не знал.) Некоторые библиотеки Kotlin не могут работать в турецкой операционной системе. Я решил эту проблему с установкой Windows 10 Pro English .

Другие разработчики, которые используют Windows 10 Single Language Turkish, сталкиваются с той же проблемой с разных сторон. ( Пример 1 и Пример 2 )

СТАРЫЙ ОТВЕТ

TL; DR -> Проблема касается сторонних библиотек, написанных с помощью Kotlin . Я преобразовал свой Java-проект в Kotlin, и все проблемные сторонние библиотеки работают хорошо. Проблема в конфликте Ява - Котлин .

Я хотел бы поделиться тем, как я решил проблему для тех, кто столкнется с такими проблемами позже.

Я выполнил все шаги, упомянутые выше, один за другим, но не смог найти никакого решения и решил проверить свои сторонние библиотеки.

Прежде всего, я отключил все сторонние библиотеки и посмотрел на состояние моих классов, которые не распознавали уже определенные методы и атрибуты. После отключения сторонних библиотек и создания Rebuild Project и Sync Gradle снова начала работать функция автоматического предложения этих поврежденных классов. Затем, обнаружив, какие сторонние библиотеки были проблемными, я активировал эти сторонние библиотеки по одной. Я обнаружил, какие сторонние библиотеки сломали мой проект.

Было 4 сторонних библиотеки, которые сломали мой проект: StickySwitch , ProgressView , SequenceLayout и Flashbar . Когда я удалил эти библиотеки, все работало правильно. После удаления библиотек мой файл Gradle был таким, как показано ниже.

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

Итак, что было общей чертой тех библиотек, которые портят мой проект? Мой проект был написан на Java, но библиотеки были написаны на Kotlin . Одну секунду, я не могу использовать библиотеки Kotlin в своем проекте Java? Да, я могу . Я должен добавить android.useAndroidX=trueи android.enableJetifier=trueв моих gradle.properties , это все. Но что, если я уже добавил эти строки в свои gradle.properties, и это не сработало?

# 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

Я не понял, почему библиотеки kotlin не могут работать с моим проектом Java. Как вы можете видеть в моем файле Gradle , я использую apply plugin: 'kotlin-android'и apply plugin: 'kotlin-android-extensions'для поддержки Kotlin.

Как я спас свой проект? Было 2 доступных варианта, как я знал. В то время как первый метод заключался в том, чтобы удалить эти 4 сторонние библиотеки и не мог их использовать, второй - в том, чтобы преобразовать все классы Java в классы Kotlin (я пробовал это раньше, но он не работал, пока не отключили все сторонние библиотеки). Я решил преобразовать все классы Java в классы Kotlin. Таким образом, я смог использовать 4 сторонние библиотеки, которые были упомянуты выше.

Мне потребовалось 30 дней, чтобы решить эту проблему. Сейчас я работаю над языком котлин. В результате мой проект работает без проблем.

TeachMeJava
источник
Я думаю, что это было больше связано с тем фактом, что эти библиотеки (или ваше приложение) использовали androidx, чем из-за Kotlin. Результат компиляции Kotlin точно такой же, как и в Java-коде. Посмотрите на это около androidx: developer.android.com/jetpack/androidx/...
сапотекского
Да, я прочитал статью, но я не понимаю, в чем именно заключается проблема моего проекта. @zapotec
TeachMeJava
Честно говоря, если это не твоя проблема, я не могу тебе помочь. Если у вас уже есть «android.useAndroidX = true» и «android.enableJetifier = true» в ваших gradle.properties, то не имеет смысла, что ваш AndroidStudio не может правильно управлять кодом. В моем собственном проекте есть несколько библиотек Kotlin (например, OkHttp4), и мне не нужно переписывать свой код на Kotlin. Кроме того, мне даже не нужно добавлять плагин kotlin в мой файл Gradle ..... В любом случае, приятно, что вы могли бы решить вашу проблему, если бы я перешел на Kotlin!
zapotec
Многие разработчики используют такие библиотеки вместе. Большинство из них не сталкиваются с какими-либо проблемами, но я знаю. Я пытаюсь выяснить, если это ошибка AS или нет. Я проверил размеры своих классов (возможно, 500+ строк в одном фрагменте сломали мой проект и т. Д.), Но ничего не работает. Наконец я нашел 2 варианта крепления. Как я уже говорил, мне потребовалось 30 дней, чтобы выяснить проблему. Я не нашел точную причину проблемы, но я нашел способ устранения @zapotec
TeachMeJava
0

Я предлагаю вам открыть его на другом компьютере, вытащив его из bitbucket, и посмотреть, действует ли он так же

muxammed
источник
Я вытащил проект на 2 разных (только что установленных Android Studio) компьютерах, но та же проблема все еще существует @muxammed. Я добавил этот шаг в свой контрольный список.
TeachMeJava