ไม่สามารถคัดลอกวางใน Android Studio


9

ฉันประสบกับปัญหาหลักสองข้อใน Android Studio ก่อนอื่นฉันไม่สามารถทำการคัดลอกและตัดแปะ ( ctrl+ c- ctrl+ v- ctrl+ x) ในบางคลาสได้ เพื่อแก้ไขปัญหานั้นฉันคลิก "invalide caches / restart" แต่มันจะหยุดลงทันที

ปัญหาที่สองคือ (ฉันคิดว่ามันเกี่ยวข้องกับปัญหาแรก) คอมไพเลอร์ไม่รู้จักวิธีการและแอตทริบิวต์ที่กำหนดไว้แล้ว คำแนะนำอัตโนมัติเป็นต้นไม่ทำงาน

ขั้นตอนที่ฉันพยายามแก้ไขปัญหาคือ

  1. ไฟล์ -> ล้างแคช / รีสตาร์ท
  2. ไฟล์ -> โหมดประหยัดพลังงาน -> ปิดการใช้งาน
  3. ปิดแท็บที่เปิดทั้งหมดและเริ่มใหม่
  4. ไฟล์ -> ซิงค์โครงการที่มีไฟล์ Gradle
  5. ไฟล์ -> ซิงค์กับระบบไฟล์
  6. ลบ JDK และติดตั้งใหม่
  7. ลบ Android Studio และติดตั้งใหม่
  8. ลบไฟล์ SDK ที่ดาวน์โหลดแล้วและโฟลเดอร์ ".Android"
  9. ปิดใช้งานและลบปลั๊กอินทั้งหมด
  10. ตรวจสอบการคัดลอกคีย์วางในไฟล์ -> การตั้งค่า -> Keymap
  11. ดึงโครงการจาก bitbucket ไปยังคอมพิวเตอร์ 2 เครื่อง
  12. สร้างโครงการใหม่คัดลอกคลาสโครงการทั้งหมดด้วย NotePad ++ ไปยังโครงการใหม่
  13. พยายามแปลงรหัส Java ทั้งหมดเป็น Kotlin ไม่สามารถแปลงได้

นี่คือข้อกำหนดระบบของฉัน; Windows 10 Home Single Language (TR) รุ่น 1909 ram 16 GB Android Studio 3.5.3 และ Gradle เวอร์ชั่น 3.5.3

ฉันได้อ่านโพสต์ทั้งหมดเกี่ยวกับปัญหาเดียวกัน แต่ไม่มีโชค (โพสต์เกี่ยวกับแพลตฟอร์ม MAC และ Linux เท่านั้น)

อัปเดต 1.0 -> ฉันพบว่าบางคลาสไม่สามารถดำเนินการตามที่อธิบายไว้ข้างต้นได้ แต่บางคลาสสามารถทำได้

ฉันตระหนักว่าไม่มีไอคอนสำหรับคลาสที่ไม่สามารถทำการดำเนินการที่ฉันได้อธิบายไว้ข้างต้น (บางครั้งก็ปรากฏไอคอน "J" อย่างน่าอัศจรรย์และเมื่อฉันคลิกคลาสอื่นไอคอน J นี้จะหายไปทันที) ฉันคิดว่า gradle หรือระบบไฟล์ของ Android Studio ไม่รู้จักไฟล์เหล่านี้ว่าเป็นคลาส

อัปเดต 2.0 -> ฉันสังเกตว่าเมื่อฉันคลิกส่วนโครงสร้างของ DuoFragment (ซึ่งมีรหัสบรรทัด 500+ และหนึ่งในคลาสที่ไม่ได้คอมไพล์) ไม่สามารถโหลดอะไรได้ DuoFragment มีขนาดใหญ่กว่าในการประมวลผลหรือไม่?

เมื่อฉันตรวจสอบส่วน Build กระบวนการบางอย่างไม่สามารถทำงานได้ (ฉันไม่ทราบว่านี่เป็นเรื่องปกติหรือไม่)

  • ภารกิจ: แอพ: 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'

}

ไม่มีข้อเสนอแนะ keymap เวอร์ชั่น Android การซิงค์แบบ Gradle สำเร็จถ้าฉันไม่เพิ่มรหัสเพิ่มเติม

อัพเดท 1.0 ภาพ

คลาสที่ไม่มีไอคอนหรือมีไอคอน "J" ไม่สามารถดำเนินการได้

เมื่อฉันคลิก / เปิดคลาสอื่นไอคอน "J" จะหายไป

อัปเดต 2.0 ภาพ

กระบวนการบางอย่างไม่สามารถทำได้ในส่วนของการสร้าง ไม่สามารถโหลดโครงสร้าง DuoFragment สรุปรหัส DuoFragment


คุณสามารถให้ภาพหน้าจอเต็มของ Android Studio ของคุณ เป็นไปได้สำหรับการซิงค์ build / gradle ที่ล้มเหลว (ดูบันทึกเหตุการณ์หรือเรียกใช้) เพื่อหยุดการทำงาน
JakeSteam

เพิ่มภาพเต็มหน้าจอของ Android Studio @JakeSteam การซิงค์แบบ Gradle สำเร็จถ้าฉันไม่เพิ่มข้อมูลโค้ดเพิ่มเติม (รหัสโครงการทั้งหมดของฉันมาจาก
Bitbucket

คุณได้ตรวจสอบว่าการคัดลอกและวางทำงานที่อื่นเช่นเบราว์เซอร์หรือแก้ไขข้อความเป็นต้น?
Sanket Vekariya

ใช่มันใช้งานได้ ไม่สามารถใช้งานได้เฉพาะบางคลาสเท่านั้น (อย่างที่ฉันบอกว่า DuoFragment () class) @SanketVekariya
TeachMeJava

คุณช่วยแสดง build.gradle ของคุณให้เราดูได้ไหม (จากทั้งโครงการและโมดูลหลัก) คุณกำหนดที่ตั้ง java.source เฉพาะสำหรับโครงการหรือไม่
zapotec

คำตอบ:


1

UPDATE ->มีข้อผิดพลาดในห้องสมุด Kotlin กับเป็นวินโดวส์ 10 โสดภาษาตุรกี (บางทีภาษา Windows ภาษาอื่นบางภาษามีปัญหาเดียวกันฉันยังไม่รู้) Kotlin บางไลบรารีไม่สามารถทำงานบนระบบปฏิบัติการภาษาตุรกีได้ ฉันจะแก้ไขปัญหานี้ด้วยการติดตั้งวินโดวส์ 10 Pro ภาษาอังกฤษ

นักพัฒนาอื่น ๆ ที่ใช้ Windows 10 Single Language Turkish ประสบปัญหาเดียวกันกับมุมที่แตกต่าง ( Example1และExample2 )

คำตอบเดิม ๆ

TL; DR -> ปัญหาเป็นเรื่องเกี่ยวกับห้องสมุดบุคคลที่สามที่เขียนด้วยKotlin ฉันแปลงโปรเจ็กต์ Java เป็น Kotlin และไลบรารีของบุคคลที่สามที่มีปัญหาทำงานได้ดี ปัญหาเป็นเรื่องเกี่ยวกับชวา - Kotlin ความขัดแย้ง

ฉันต้องการแบ่งปันวิธีแก้ไขปัญหาสำหรับผู้ที่จะประสบปัญหาดังกล่าวในภายหลัง

ฉันทำตามขั้นตอนทั้งหมดที่กล่าวถึงข้างต้นทีละรายการ แต่ฉันไม่สามารถหาวิธีแก้ปัญหาใด ๆ ได้และฉันตัดสินใจที่จะตรวจสอบห้องสมุดบุคคลที่สามของฉัน

ก่อนอื่นฉันปิดการใช้งานห้องสมุดบุคคลที่สามทั้งหมดและดูสถานะของชั้นเรียนของฉันที่ไม่รู้จักวิธีการและแอตทริบิวต์ที่กำหนดไว้แล้ว หลังจากปิดใช้งานห้องสมุดบุคคลที่สามและสร้างโครงการใหม่และซิงค์ 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 ​​ตัวเลือกที่ฉันรู้ ในขณะที่วิธีแรกคือการลบไลบรารีบุคคลที่สามเหล่านั้นออกและไม่สามารถใช้งานได้อันดับที่สองคือการแปลงคลาส Java ทั้งหมดเป็นคลาส Kotlin (ฉันลองก่อนหน้านี้ แต่ไม่ได้ทำงานจนกว่าจะปิดการใช้งานไลบรารีบุคคลที่สามทั้งหมด ฉันเลือกแปลงคลาส Java ทั้งหมดเป็นคลาส Kotlin ดังนั้นฉันสามารถใช้ห้องสมุดบุคคลที่สาม 4 แห่งที่กล่าวถึงข้างต้น

ฉันใช้เวลา 30 วันในการแก้ปัญหานี้ ตอนนี้ฉันกำลังทำงานกับภาษา Kotlin ดังนั้นโครงการของฉันทำงานได้โดยไม่มีปัญหา


ฉันคิดว่ามันเกี่ยวข้องกับความเป็นจริงของห้องสมุดเหล่านั้น (หรือแอปของคุณ) โดยใช้ androidx มากกว่าเพราะ Kotlin ผลการคอมไพล์ Kotlin เหมือนกับโค้ด java ดูที่นี่เกี่ยวกับ androidx: developer.android.com/jetpack/androidx/…
zapotec

ใช่ฉันได้อ่านบทความ แต่ฉันไม่เข้าใจว่าปัญหาของโครงการคืออะไร @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

ฉันแนะนำให้คุณเปิดมันบนคอมพิวเตอร์เครื่องอื่นโดยการดึงมันจากบิตเบ็ตเก็ตและดูว่ามันทำหน้าที่เหมือนกันหรือไม่


ฉันดึงโปรเจ็กต์ด้วยคอมพิวเตอร์ 2 เครื่อง (ติดตั้ง Android Studio) ที่แตกต่างกัน แต่ปัญหาเดียวกันยังคงมีอยู่ @muxammed ฉันได้เพิ่มขั้นตอนนี้ไปยังรายการตรวจสอบของฉัน
TeachMeJava
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.