Tidak Dapat Melakukan Copy-Paste di Android Studio

9

Saya telah menghadapi dua masalah utama di Android Studio. Pertama-tama saya tidak dapat melakukan kemampuan copy-paste dan cut-paste ( ctrl+ c- ctrl+ v- ctrl+ x) di beberapa kelas. Untuk memperbaiki masalah itu, saya klik "invalide cache / restart", tetapi segera rusak kembali.

Masalah kedua adalah (saya pikir itu terkait dengan masalah pertama) kompiler tidak mengenali metode dan atribut yang sudah didefinisikan. Saran otomatis, dll. Tidak berfungsi.

Langkah-langkah yang saya ambil untuk mencoba menyelesaikan masalah adalah;

  1. File -> invalide cache / restart,
  2. File -> Mode Hemat Daya -> Nonaktifkan,
  3. Tutup semua tab yang terbuka dan restart baru,
  4. File -> Sinkronkan Proyek dengan File Gradle,
  5. File -> Sinkronkan dengan Sistem File,
  6. Hapus JDK dan instal ulang,
  7. Hapus Android Studio dan instal ulang,
  8. Hapus file SDK yang sudah diunduh dan folder ".Android",
  9. Nonaktifkan dan hapus semua plugin.
  10. Memeriksa salin-tempel keymap di File -> Settings -> Keymap
  11. Menarik proyek dari bitbucket ke 2 komputer yang berbeda
  12. Membuat proyek baru, menyalin seluruh kelas proyek dengan NotePad ++ ke Proyek baru
  13. Cobalah untuk mengkonversi semua kode Java ke Kotlin, tidak dapat mengkonversi

Ini spesifikasi sistem saya; Windows 10 Home Single Language (TR), versi 1909. ram 16 GB. Android Studio 3.5.3 dan Versi Gradle 3.5.3

Saya telah membaca semua posting tentang masalah yang sama tetapi tidak ada keberuntungan (Posting ini hanya tentang platform MAC dan Linux).

UPDATE 1.0 -> Saya telah menemukan bahwa beberapa kelas tidak dapat melakukan operasi yang dijelaskan di atas, tetapi beberapa kelas bisa.

Saya menyadari bahwa, Tidak ada ikon untuk kelas yang tidak dapat melakukan operasi yang telah saya jelaskan di atas. (Kadang-kadang secara ajaib muncul ikon "J" dan ketika saya mengklik kelas lain, ikon J ini segera menghilang.) Saya pikir gradle atau sistem file Android Studio tidak mengenali file-file ini sebagai kelas.

UPDATE 2.0 -> Saya perhatikan bahwa ketika saya mengklik bagian Struktur dari DuoFragment (Yang memiliki 500+ kode baris dan salah satu kelas yang tidak dikompilasi) tidak dapat memuat apa pun. Apakah ukuran DuoFragment lebih besar untuk diproses?

Juga ketika saya memeriksa bagian Build, beberapa proses tidak dapat berjalan (saya tidak tahu apakah ini normal atau tidak);

  • Tugas: aplikasi: compileDebugAidl NO-SOURCE,
  • Tugas: aplikasi: compileDebugRenderscript NO-SOURCE,
  • Tugas: aplikasi: processDebugJavaRes NO-SOURCE

UPDATE 3.0 ->

Ini file Gradle saya. File Tingkat Proyek Level:

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

File Gradle tingkat aplikasi.

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'

}

Tidak Ada Saran Keymap Versi Android Sinkronisasi Gradle berhasil jika saya tidak menambahkan kode tambahan

MEMPERBARUI 1.0 Gambar

Kelas-kelas tidak ada ikon atau hanya memiliki ikon "J" tidak dapat melakukan operasi

Ketika saya mengklik / membuka kelas lain, ikon "J" menghilang

UPDATE 2.0 Gambar

Beberapa proses tidak dapat dilakukan di bagian Bangun Tidak dapat memuat struktur DuoFragment Ringkasan kode DuoFragment

TeachMeJava
sumber
Bisakah Anda memberikan tangkapan layar lengkap dari Android Studio Anda? Mungkin untuk sinkronisasi build / gradle yang gagal (lihat Event Log atau Run) untuk merusak fungsionalitas.
JakeSteam
Menambahkan tangkapan layar penuh Android Studio @JakeSteam. Sinkronisasi tingkat berhasil, jika saya tidak menambahkan potongan kode tambahan. (Seluruh kode proyek saya berasal dari Bitbucket)
TeachMeJava
sudahkah Anda memeriksa apakah copy dan paste berfungsi di tempat lain seperti browser atau editor teks dll?
Sanket Vekariya
Ya itu berhasil. Tidak bisa hanya bekerja beberapa kelas (seperti saya katakan kelas DuoFragment ()) @SanketVekariya
TeachMeJava
Bisakah Anda menunjukkan build.gradle Anda? (dari keduanya, proyek dan modul utama). Apakah Anda menetapkan lokasi java.source spesifik untuk proyek?
zapotec

Jawaban:

1

UPDATE -> Ada bug di perpustakaan Kotlin dengan Windows 10 Bahasa Turki . (Mungkin beberapa distribusi Windows Satu Bahasa lainnya memiliki masalah yang sama, saya belum tahu.) Beberapa perpustakaan Kotlin tidak dapat bekerja pada sistem operasi Turki. Saya memecahkan masalah ini dengan menginstal Windows 10 Pro English .

Pengembang lain yang menggunakan Windows 10 Bahasa Turki Tunggal menghadapi masalah yang sama dengan sudut yang berbeda. ( Example1 dan Example2 )

JAWABAN TUA

TL; DR -> Masalahnya adalah tentang perpustakaan pihak ketiga yang ditulis dengan Kotlin . Saya telah mengonversi proyek Java saya ke Kotlin dan semua perpustakaan pihak ketiga yang bermasalah bekerja dengan baik. Masalahnya adalah tentang konflik Jawa - Kotlin .

Saya ingin berbagi bagaimana saya memecahkan masalah bagi mereka yang akan menghadapi masalah seperti itu nanti.

Saya melakukan semua langkah yang saya sebutkan di atas satu per satu tetapi saya tidak dapat menemukan solusi dan saya memutuskan untuk memeriksa perpustakaan pihak ketiga saya.

Pertama-tama, saya menonaktifkan semua perpustakaan pihak ketiga dan melihat status kelas saya yang tidak mengenali metode dan atribut yang sudah didefinisikan. Setelah menonaktifkan perpustakaan pihak ketiga dan membuat Rebuild Project dan Sync Gradle, fitur Saran Otomatis dari kelas-kelas yang rusak mulai bekerja lagi. Kemudian, mengungkap perpustakaan pihak ketiga mana yang bermasalah, saya mengaktifkan perpustakaan pihak ketiga tersebut satu per satu. Saya menemukan perpustakaan pihak ketiga mana yang merusak proyek saya.

Ada 4 perpustakaan pihak ketiga yang merusak proyek saya: StickySwitch , ProgressView , SequenceLayout dan Flashbar . Ketika saya menghapus perpustakaan itu, semuanya bekerja dengan baik. Setelah menghapus perpustakaan, file Gradle saya seperti di bawah ini.

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

Jadi, apa fitur umum dari perpustakaan yang merusak proyek saya? Proyek saya ditulis dengan Java tetapi perpustakaan itu ditulis dengan Kotlin . Satu detik, tidak bisakah saya menggunakan perpustakaan Kotlin di proyek Java saya? Ya saya bisa . Saya harus menambahkan android.useAndroidX=truedan android.enableJetifier=truedi gradle.properties saya , itu dia. Tetapi bagaimana jika saya telah menambahkan baris-baris itu di properti gradle.props saya dan itu tidak berhasil?

# 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

Saya belum mengerti mengapa perpustakaan kotlin tidak dapat bekerja dengan proyek Java saya. Seperti yang Anda lihat di file Gradle saya , saya menggunakan apply plugin: 'kotlin-android'dan apply plugin: 'kotlin-android-extensions'untuk dukungan Kotlin.

Bagaimana saya menyelamatkan proyek saya? Ada 2 opsi yang tersedia seperti yang saya tahu. Sementara metode pertama adalah untuk menghapus 4 perpustakaan pihak ketiga dan tidak bisa menggunakannya, yang kedua adalah untuk mengkonversi semua kelas Java ke kelas Kotlin (saya sudah mencoba sebelumnya tetapi tidak berfungsi sampai menonaktifkan semua perpustakaan pihak ketiga). Saya memilih untuk mengonversi semua kelas Java ke kelas Kotlin. Jadi, saya bisa menggunakan 4 perpustakaan pihak ketiga yang disebutkan di atas.

Butuh waktu 30 hari untuk menyelesaikan masalah ini. Sekarang, saya sedang mengerjakan bahasa Kotlin. Akibatnya, proyek saya berjalan tanpa masalah.

TeachMeJava
sumber
Saya pikir itu lebih terkait dengan fakta perpustakaan itu (atau aplikasi Anda) menggunakan androidx daripada karena Kotlin. Hasil kompilasi Kotlin persis sama dengan kode java. Lihat ini tentang androidx: developer.android.com/jetpack/androidx/…
zapotec
Ya saya telah membaca artikel itu tetapi saya tidak mengerti apa masalah sebenarnya dari proyek saya. @zapotec
TeachMeJava
Jujur saja, kalau itu bukan masalahmu, aku tidak bisa membantumu. Jika Anda sudah memiliki "android.useAndroidX = true" dan "android.enableJetifier = true" di gradle.properties Anda, tidak masuk akal bahwa AndroidStudio Anda tidak dapat mengelola kode dengan benar. Saya punya dalam proyek saya sendiri beberapa perpustakaan Kotlin (misalnya OkHttp4), dan saya tidak perlu menulis ulang kode saya di Kotlin. Selain itu, saya bahkan tidak perlu menambahkan plugin kotlin ke file gradle saya ..... Pokoknya, senang Anda bisa menyelesaikan masalah Anda migrasi saya ke Kotlin!
zapotec
Ada begitu banyak pengembang menggunakan perpustakaan semacam ini bersama-sama. Kebanyakan dari mereka tidak menghadapi masalah tetapi saya lakukan. Saya mencoba mencari tahu apakah itu bug AS atau tidak. Saya telah memeriksa ukuran kelas saya (mungkin 500+ baris dalam satu fragmen menghancurkan proyek saya, dll.) Tetapi tidak berhasil. Akhirnya saya menemukan 2 opsi memperbaiki. Seperti yang saya katakan sebelumnya, butuh waktu 30 hari untuk mencari tahu masalahnya. Saya tidak menemukan alasan pasti masalah ini tetapi saya menemukan cara memperbaiki @zapotec
TeachMeJava
0

Saya sarankan Anda untuk membukanya di komputer lain dengan menariknya dari bitbucket, dan melihat apakah itu bertindak sama

disamakan
sumber
Saya menarik proyek dengan 2 komputer (Android Studio yang baru diinstal) berbeda tetapi masalah yang sama masih ada @muxammed. Saya telah menambahkan langkah ini ke daftar periksa saya.
TeachMeJava