无法在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家庭单一语言(TR)版本1909.RAM 16 GB。Android Studio 3.5.3和Gradle版本3.5.3

我已经阅读了有关同一问题的所有文章,但没有运气(这些文章仅关于MAC和Linux平台)。

UPDATE 1.0-> 我发现有些类不能执行上述操作,但有些类可以。

我意识到,没有类的图标无法执行我上面描述的操作。(有时会神奇地显示“ J”图标,当我单击另一个类时,该J图标会立即消失。)我认为Android Studio的gradle或文件系统无法将这些文件识别为类。

UPDATE 2.0-> 我注意到,当我单击DuoFragment的Structure部分时(其中有500多个行代码,并且是未编译的类之一)无法加载任何内容。DuoFragment的大小是否更大?

同样,当我检查“构建”部分时,某些进程无法运行(我不知道这是否正常)。

  • 任务: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同步成功

UPDATE 1.0图片

没有图标或仅具有“ J”图标的类无法进行操作

当我单击/打开另一个班级时,“ J”图标消失了

UPDATE 2.0图片

在“构建”部分中无法完成某些过程 无法加载DuoFragment结构 DuoFragment代码摘要


您可以提供Android Studio的完整屏幕截图吗?构建/ gradle同步失败(请参阅事件日志或运行)可能会破坏功能。
JakeSteam

添加了Android Studio @JakeSteam的完整屏幕截图。如果我不添加任何其他代码段,则Gradle同步成功。(我的整个项目代码都来自Bitbucket)
TeachMeJava

您是否检查过复制和粘贴是否在浏览器或文本编辑器等其他地方正常工作?
Sanket Vekariya

是的,它有效。它不能仅适用于某些类(例如我所说的DuoFragment()类)@SanketVekariya
TeachMeJava

您能告诉我们您的build.gradle吗?(来自项目和主模块)。您是否为项目定义了特定的java.source位置?
zapotec

Answers:


1

更新-> Windows 10 Single Language Turkish的 Kotlin库中有一个错误。(也许其他一些单一语言Windows发行版也存在相同的问题,我还不知道。)Kotlin的某些库无法在土耳其语操作系统上工作。我通过安装Windows 10 Pro English解决了此问题。

使用Windows 10单一语言土耳其语的其他开发人员在不同角度也面临相同的问题。(例1例2

老答案

TL; DR- >问题是关于用Kotlin编写的第三方库。我已经将Java项目转换为Kotlin,并且所有有问题的第三方库都运行良好。问题是关于Java与Kotlin的冲突

我想与那些以后会遇到此类问题的人分享我如何解决该问题。

我一步一步地完成了上面提到的所有步骤,但是找不到任何解决方案,因此决定检查我的第三方库。

首先,我禁用了所有第三方库,并查看了无法识别已经定义的方法和属性的类的状态。禁用第三方库并创建Rebuild Project和Sync Gradle之后,这些损坏的类的自动建议功能再次开始起作用。然后,发现哪些第三方库有问题,我一步一步地激活了这些第三方库。我发现哪个第三方图书馆破坏了我的项目。

有4个破坏我的项目的第三方库:StickySwitchProgressViewSequenceLayoutFlashbar。当我删除这些库时,一切正常。删除库后,我的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编写的。一秒钟,我不能在Java项目中使用Kotlin库吗?是的,我可以。我必须添加android.useAndroidX=trueandroid.enableJetifier=truegradle.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
TeachMeJava

老实说,如果那不是您的问题,我无能为力。如果gradle.properties中已经有“ android.useAndroidX = true”和“ android.enableJetifier = true”,则说明AndroidStudio无法正确管理代码是没有道理的。我在自己的项目中有一些Kotlin库(例如OkHttp4),不需要在Kotlin中重新编写代码。此外,我什至无需在我的gradle文件中添加kotlin插件.....无论如何,很高兴您可以解决我迁移到Kotlin时遇到的问题!
zapotec

有很多开发人员一起使用这种库。他们大多数都没有遇到任何问题,但我有。我试图弄清楚这是否是AS错误。我检查了我的班级大小(单个片段中可能有500多行打破了我的项目等),但没有任何效果。最终我找到了2个修复选项。正如我之前所说,我花了30天的时间才解决问题。我没有找到问题的确切原因,但我找到了一种固定的方式@zapotec
TeachMeJava

0

我建议您通过从bitbucket中拉出它来在另一台计算机上打开它,看看它的行为是否相同


我使用2台不同的(新安装的Android Studio)计算机拉出了该项目,但@muxammed仍然存在相同的问题。我已将此步骤添加到清单中。
TeachMeJava
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.