Я столкнулся с двумя основными проблемами в Android Studio. Прежде всего, я не могу выполнять способности копирования и вставки ( ctrl+ c- ctrl+ v- ctrl+ x) в некоторых классах. Чтобы устранить эту проблему, я нажимаю «недействительные кэши / перезапуски», но она сразу же выходит из строя.
Вторая проблема (я думаю, это связано с первой проблемой), компилятор не распознает уже определенные методы и атрибуты. Авто предложение и т.д. не работает.
Шаги, которые я предпринял, чтобы попытаться решить проблему:
- Файл -> недействительные кэши / перезапуски,
- Файл -> Режим энергосбережения -> Отключить,
- Закройте все открытые вкладки и перезапустите,
- Файл -> Синхронизировать проект с файлами Gradle,
- Файл -> Синхронизировать с файловой системой,
- Удалить JDK и переустановить,
- Удалить Android Studio и переустановить,
- Удалить уже загруженные файлы SDK и папку «.Android»,
- Отключить и удалить все плагины.
- Проверено копирование-вставка раскладки клавиатуры в Файл -> Настройки -> Карта раскладок
- Перетянул проект с bitbucket на разные 2 компьютера
- Создан новый проект, скопируйте целые классы проекта с помощью NotePad ++ в новый проект
- Попробуйте конвертировать все коды 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'
}
ОБНОВЛЕНИЕ 1.0 Изображения
ОБНОВЛЕНИЕ 2.0 Изображения
источник
Ответы:
ОБНОВЛЕНИЕ -> В библиотеках 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 был таким, как показано ниже.
Итак, что было общей чертой тех библиотек, которые портят мой проект? Мой проект был написан на Java, но библиотеки были написаны на Kotlin . Одну секунду, я не могу использовать библиотеки Kotlin в своем проекте Java? Да, я могу . Я должен добавить
android.useAndroidX=true
иandroid.enableJetifier=true
в моих gradle.properties , это все. Но что, если я уже добавил эти строки в свои gradle.properties, и это не сработало?Я не понял, почему библиотеки kotlin не могут работать с моим проектом Java. Как вы можете видеть в моем файле Gradle , я использую
apply plugin: 'kotlin-android'
иapply plugin: 'kotlin-android-extensions'
для поддержки Kotlin.Как я спас свой проект? Было 2 доступных варианта, как я знал. В то время как первый метод заключался в том, чтобы удалить эти 4 сторонние библиотеки и не мог их использовать, второй - в том, чтобы преобразовать все классы Java в классы Kotlin (я пробовал это раньше, но он не работал, пока не отключили все сторонние библиотеки). Я решил преобразовать все классы Java в классы Kotlin. Таким образом, я смог использовать 4 сторонние библиотеки, которые были упомянуты выше.
Мне потребовалось 30 дней, чтобы решить эту проблему. Сейчас я работаю над языком котлин. В результате мой проект работает без проблем.
источник
Я предлагаю вам открыть его на другом компьютере, вытащив его из bitbucket, и посмотреть, действует ли он так же
источник