【问题标题】:Android Studio: unresolved reference for java and javax imports, but project compilesAndroid Studio:java 和 javax 导入的未解决参考,但项目编译
【发布时间】:2020-06-20 12:09:34
【问题描述】:

我正在尝试在 Android Studio 项目中创建自己的注解处理器。

我在 Android Studio 中为此创建了另一个模块

我能够编译该项目。我不能只使用自动完成和其他东西。在这种情况下,IDE 将所有引用视为未解决的引用错误

我该如何解决这个问题?

什么是重要的

当我默认创建新的库模块“autoadapter-process”时,Android Studio 在 build.gradle 中为这个模块创建了这个实现:

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

为了能够编译项目,我将其替换为:

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"

以下是我在项目结构 (Android Studio) 中的 JDK 设置:

下面是我的项目结构:

这是我的自动适配器处理器模块的 Gradle 配置:

apply plugin: 'java-library'
apply plugin: 'kotlin'

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation project(':autoadapter-annotations')
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
}

这个 https://stackoverflow.com/a/61180376/104891 问题与我的不同,因为它是 IntelliJ IDEA 特定的。它不是特定于 Android Studio 的

【问题讨论】:

    标签: android android-studio kotlin gradle


    【解决方案1】:

    看来,Android Studio 缓存了一些以前为新 Android Studio 版本导入的设置。从版本 3.1 -> 3.2 -> 3.4 -> ... -> 4.0 更新时,我已经做了很长时间了

    所以旧的JDK版本似乎缓存在jdk.table.xml文件中

    只要找到你的 Android Studio 选项文件夹,你就可以在里面找到这个文件(在我的例子中是 User/Library/Preferences/AndroidStudio4.0/options)

    您可以删除它并使用正确的版本再次创建它(这对我有用并且是我的问题的解决方案: https://stackoverflow.com/a/38067170/5434346

    或者你可以尝试修改(我没试过):https://stackoverflow.com/a/41531367/5434346

    奇怪的是它没有包含任何 JDK 1.7 引用:

    <application>
      <component name="ProjectJdkTable">
        <jdk version="2">
          <name value="1.8" />
          <type value="JavaSDK" />
          <version value="java version &quot;1.8.0_152-release&quot;" />
          <homePath value="$APPLICATION_HOME_DIR$/jre/jdk/Contents/Home" />
          <roots>
            <annotationsPath>
              <root type="composite">
                <root url="jar:///private/var/folders/b2/cyvk3_yx2g79yctwzx_l7lx80000gn/T/AppTranslocation/2A3A91C1-D3F4-4B90-9B20-E2C1047BDD8F/d/Android Studio 3.5.app/Contents/lib/jdkAnnotations.jar!/" type="simple" />
              </root>
            </annotationsPath>
            <classPath>
              <root type="composite">
                <root url="jar:///private/var/folders/b2/cyvk3_yx2g79yctwzx_l7lx80000gn/T/AppTranslocation/2A3A91C1-D3F4-4B90-9B20-E2C1047BDD8F/d/Android Studio 3.5.app/Contents/jre/jdk/Contents/Home/jre/lib/charsets.jar!/" type="simple" />
                <root url="jar:///private/var/folders/b2/cyvk3_yx2g79yctwzx_l7lx80000gn/T/AppTranslocation/2A3A91C1-D3F4-4B90-9B20-E2C1047BDD8F/d/Android Studio 3.5.app/Contents/jre/jdk/Contents/Home/jre/lib/ext/cldrdata.jar!/" type="simple" />
                <root url="jar:///private/var/folders/b2/cyvk3_yx2g79yctwzx_l7lx80000gn/T/AppTranslocation/2A3A91C1-D3F4-4B90-9B20-E2C1047BDD8F/d/Android Studio 3.5.app/Contents/jre/jdk/Contents/Home/jre/lib/ext/dnsns.jar!/" type="simple" />
                <root url="jar:///private/var/folders/b2/cyvk3_yx2g79yctwzx_l7lx80000gn/T/AppTranslocation/2A3A91C1-D3F4-4B90-9B20-E2C1047BDD8F/d/Android Studio 3.5.app/Contents/jre/jdk/Contents/Home/jre/lib/ext/jaccess.jar!/" type="simple" />
                <root url="jar:///private/var/folders/b2/cyvk3_yx2g79yctwzx_l7lx80000gn/T/AppTranslocation/2A3A91C1-D3F4-4B90-9B20-E2C1047BDD8F/d/Android Studio 3.5.app/Contents/jre/jdk/Contents/Home/jre/lib/ext/localedata.jar!/" type="simple" />
                <root url="jar:///private/var/folders/b2/cyvk3_yx2g79yctwzx_l7lx80000gn/T/AppTranslocation/2A3A91C1-D3F4-4B90-9B20-E2C1047BDD8F/d/Android Studio 3.5.app/Contents/jre/jdk/Contents/Home/jre/lib/ext/nashorn.jar!/" type="simple" />
                <root url="jar:///private/var/folders/b2/cyvk3_yx2g79yctwzx_l7lx80000gn/T/AppTranslocation/2A3A91C1-D3F4-4B90-9B20-E2C1047BDD8F/d/Android Studio 3.5.app/Contents/jre/jdk/Contents/Home/jre/lib/ext/sunec.jar!/" type="simple" />
                <root url="jar:///private/var/folders/b2/cyvk3_yx2g79yctwzx_l7lx80000gn/T/AppTranslocation/2A3A91C1-D3F4-4B90-9B20-E2C1047BDD8F/d/Android Studio 3.5.app/Contents/jre/jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar!/" type="simple" />
                <root url="jar:///private/var/folders/b2/cyvk3_yx2g79yctwzx_l7lx80000gn/T/AppTranslocation/2A3A91C1-D3F4-4B90-9B20-E2C1047BDD8F/d/Android Studio 3.5.app/Contents/jre/jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar!/" type="simple" />
                <root url="jar:///private/var/folders/b2/cyvk3_yx2g79yctwzx_l7lx80000gn/T/AppTranslocation/2A3A91C1-D3F4-4B90-9B20-E2C1047BDD8F/d/Android Studio 3.5.app/Contents/jre/jdk/Contents/Home/jre/lib/ext/zipfs.jar!/" type="simple" />
                <root url="jar:///private/var/folders/b2/cyvk3_yx2g79yctwzx_l7lx80000gn/T/AppTranslocation/2A3A91C1-D3F4-4B90-9B20-E2C1047BDD8F/d/Android Studio 3.5.app/Contents/jre/jdk/Contents/Home/jre/lib/jce.jar!/" type="simple" />
                <root url="jar:///private/var/folders/b2/cyvk3_yx2g79yctwzx_l7lx80000gn/T/AppTranslocation/2A3A91C1-D3F4-4B90-9B20-E2C1047BDD8F/d/Android Studio 3.5.app/Contents/jre/jdk/Contents/Home/jre/lib/jsse.jar!/" type="simple" />
                <root url="jar:///private/var/folders/b2/cyvk3_yx2g79yctwzx_l7lx80000gn/T/AppTranslocation/2A3A91C1-D3F4-4B90-9B20-E2C1047BDD8F/d/Android Studio 3.5.app/Contents/jre/jdk/Contents/Home/jre/lib/management-agent.jar!/" type="simple" />
                <root url="jar:///private/var/folders/b2/cyvk3_yx2g79yctwzx_l7lx80000gn/T/AppTranslocation/2A3A91C1-D3F4-4B90-9B20-E2C1047BDD8F/d/Android Studio 3.5.app/Contents/jre/jdk/Contents/Home/jre/lib/resources.jar!/" type="simple" />
                <root url="jar:///private/var/folders/b2/cyvk3_yx2g79yctwzx_l7lx80000gn/T/AppTranslocation/2A3A91C1-D3F4-4B90-9B20-E2C1047BDD8F/d/Android Studio 3.5.app/Contents/jre/jdk/Contents/Home/jre/lib/rt.jar!/" type="simple" />
                <root url="jar:///private/var/folders/b2/cyvk3_yx2g79yctwzx_l7lx80000gn/T/AppTranslocation/2A3A91C1-D3F4-4B90-9B20-E2C1047BDD8F/d/Android Studio 3.5.app/Contents/jre/jdk/Contents/Home/lib/dt.jar!/" type="simple" />
                <root url="jar:///private/var/folders/b2/cyvk3_yx2g79yctwzx_l7lx80000gn/T/AppTranslocation/2A3A91C1-D3F4-4B90-9B20-E2C1047BDD8F/d/Android Studio 3.5.app/Contents/jre/jdk/Contents/Home/lib/jconsole.jar!/" type="simple" />
                <root url="jar:///private/var/folders/b2/cyvk3_yx2g79yctwzx_l7lx80000gn/T/AppTranslocation/2A3A91C1-D3F4-4B90-9B20-E2C1047BDD8F/d/Android Studio 3.5.app/Contents/jre/jdk/Contents/Home/lib/sa-jdi.jar!/" type="simple" />
                <root url="jar:///private/var/folders/b2/cyvk3_yx2g79yctwzx_l7lx80000gn/T/AppTranslocation/2A3A91C1-D3F4-4B90-9B20-E2C1047BDD8F/d/Android Studio 3.5.app/Contents/jre/jdk/Contents/Home/lib/tools.jar!/" type="simple" />
              </root>
            </classPath>
            <javadocPath>
              <root type="composite">
                <root url="http://docs.oracle.com/javase/8/docs/api/" type="simple" />
              </root>
            </javadocPath>
            <sourcePath>
              <root type="composite" />
            </sourcePath>
          </roots>
          <additional />
        </jdk>
        <jdk version="2">
          <name value="Android API 27 Platform" />
          <type value="Android SDK" />
          <version value="java version &quot;1.8.0_152-release&quot;" />
          <homePath value="$USER_HOME$/Library/Android/sdk" />
          <roots>
            <annotationsPath>
              <root type="composite">
                <root url="jar:///private/var/folders/b2/cyvk3_yx2g79yctwzx_l7lx80000gn/T/AppTranslocation/2A3A91C1-D3F4-4B90-9B20-E2C1047BDD8F/d/Android Studio 3.5.app/Contents/plugins/android/lib/androidAnnotations.jar!/" type="simple" />
              </root>
            </annotationsPath>
            <classPath>
              <root type="composite">
                <root url="jar://$USER_HOME$/Library/Android/sdk/platforms/android-27/android.jar!/" type="simple" />
                <root url="file://$USER_HOME$/Library/Android/sdk/platforms/android-27/data/res" type="simple" />
              </root>
            </classPath>
            <javadocPath>
              <root type="composite">
                <root url="http://developer.android.com/reference/" type="simple" />
              </root>
            </javadocPath>
            <sourcePath>
              <root type="composite" />
            </sourcePath>
          </roots>
          <additional jdk="1.8" sdk="android-27" />
        </jdk>
        <jdk version="2">
          <name value="Android API 25 Platform" />
          <type value="Android SDK" />
          <version value="java version &quot;1.8.0_152-release&quot;" />
          <homePath value="$USER_HOME$/Library/Android/sdk" />
          <roots>
            <annotationsPath>
              <root type="composite">
                <root url="jar:///private/var/folders/b2/cyvk3_yx2g79yctwzx_l7lx80000gn/T/AppTranslocation/2A3A91C1-D3F4-4B90-9B20-E2C1047BDD8F/d/Android Studio 3.5.app/Contents/plugins/android/lib/androidAnnotations.jar!/" type="simple" />
              </root>
            </annotationsPath>
            <classPath>
              <root type="composite">
                <root url="jar://$USER_HOME$/Library/Android/sdk/platforms/android-25/android.jar!/" type="simple" />
                <root url="file://$USER_HOME$/Library/Android/sdk/platforms/android-25/data/res" type="simple" />
              </root>
            </classPath>
            <javadocPath>
              <root type="composite">
                <root url="http://developer.android.com/reference/" type="simple" />
              </root>
            </javadocPath>
            <sourcePath>
              <root type="composite" />
            </sourcePath>
          </roots>
          <additional jdk="1.8" sdk="android-25" />
        </jdk>
        <jdk version="2">
          <name value="Android API 26 Platform" />
          <type value="Android SDK" />
          <version value="java version &quot;1.8.0_152-release&quot;" />
          <homePath value="$USER_HOME$/Library/Android/sdk" />
          <roots>
            <annotationsPath>
              <root type="composite">
                <root url="jar://$APPLICATION_HOME_DIR$/plugins/android/lib/androidAnnotations.jar!/" type="simple" />
              </root>
            </annotationsPath>
            <classPath>
              <root type="composite">
                <root url="jar://$USER_HOME$/Library/Android/sdk/platforms/android-26/android.jar!/" type="simple" />
                <root url="file://$USER_HOME$/Library/Android/sdk/platforms/android-26/data/res" type="simple" />
              </root>
            </classPath>
            <javadocPath>
              <root type="composite" />
            </javadocPath>
            <sourcePath>
              <root type="composite">
                <root url="file://$USER_HOME$/Library/Android/sdk/sources/android-26" type="simple" />
              </root>
            </sourcePath>
          </roots>
          <additional jdk="1.8" sdk="android-26" />
        </jdk>
        <jdk version="2">
          <name value="Android API 23 Platform" />
          <type value="Android SDK" />
          <version value="java version &quot;1.8.0_152-release&quot;" />
          <homePath value="$USER_HOME$/Library/Android/sdk" />
          <roots>
            <annotationsPath>
              <root type="composite">
                <root url="jar:///private/var/folders/b2/cyvk3_yx2g79yctwzx_l7lx80000gn/T/AppTranslocation/2A3A91C1-D3F4-4B90-9B20-E2C1047BDD8F/d/Android Studio 3.5.app/Contents/plugins/android/lib/androidAnnotations.jar!/" type="simple" />
              </root>
            </annotationsPath>
            <classPath>
              <root type="composite">
                <root url="jar://$USER_HOME$/Library/Android/sdk/platforms/android-23/android.jar!/" type="simple" />
                <root url="file://$USER_HOME$/Library/Android/sdk/platforms/android-23/data/res" type="simple" />
              </root>
            </classPath>
            <javadocPath>
              <root type="composite">
                <root url="http://developer.android.com/reference/" type="simple" />
              </root>
            </javadocPath>
            <sourcePath>
              <root type="composite" />
            </sourcePath>
          </roots>
          <additional jdk="1.8" sdk="android-23" />
        </jdk>
        <jdk version="2">
          <name value="Android API 28 Platform" />
          <type value="Android SDK" />
          <version value="java version &quot;1.8.0_152-release&quot;" />
          <homePath value="$USER_HOME$/Library/Android/sdk" />
          <roots>
            <annotationsPath>
              <root type="composite">
                <root url="jar://$USER_HOME$/Library/Android/sdk/platforms/android-28/data/annotations.zip!/" type="simple" />
              </root>
            </annotationsPath>
            <classPath>
              <root type="composite">
                <root url="jar://$USER_HOME$/Library/Android/sdk/platforms/android-28/android.jar!/" type="simple" />
                <root url="file://$USER_HOME$/Library/Android/sdk/platforms/android-28/data/res" type="simple" />
              </root>
            </classPath>
            <javadocPath>
              <root type="composite">
                <root url="http://developer.android.com/reference/" type="simple" />
              </root>
            </javadocPath>
            <sourcePath>
              <root type="composite" />
            </sourcePath>
          </roots>
          <additional jdk="1.8" sdk="android-28" />
        </jdk>
        <jdk version="2">
          <name value="Kotlin SDK" />
          <type value="KotlinSDK" />
          <version value="1.3.30" />
          <homePath value="$USER_HOME$/Library/Application Support/AndroidStudio3.6/Kotlin/kotlinc" />
          <roots>
            <annotationsPath>
              <root type="composite" />
            </annotationsPath>
            <classPath>
              <root type="composite" />
            </classPath>
            <javadocPath>
              <root type="composite" />
            </javadocPath>
            <sourcePath>
              <root type="composite" />
            </sourcePath>
          </roots>
          <additional />
        </jdk>
        <jdk version="2">
          <name value="Android API 29 Platform" />
          <type value="Android SDK" />
          <version value="java version &quot;1.8.0_152-release&quot;" />
          <homePath value="$USER_HOME$/Library/Android/sdk" />
          <roots>
            <annotationsPath>
              <root type="composite">
                <root url="jar://$APPLICATION_HOME_DIR$/plugins/android/lib/androidAnnotations.jar!/" type="simple" />
              </root>
            </annotationsPath>
            <classPath>
              <root type="composite">
                <root url="jar://$USER_HOME$/Library/Android/sdk/platforms/android-29/android.jar!/" type="simple" />
                <root url="file://$USER_HOME$/Library/Android/sdk/platforms/android-29/data/res" type="simple" />
              </root>
            </classPath>
            <javadocPath>
              <root type="composite">
                <root url="http://developer.android.com/reference/" type="simple" />
              </root>
            </javadocPath>
            <sourcePath>
              <root type="composite" />
            </sourcePath>
          </roots>
          <additional jdk="1.8" sdk="android-29" />
        </jdk>
        <jdk version="2">
          <name value="1.8.0_161" />
          <type value="JavaSDK" />
          <version value="java version &quot;1.8.0_161&quot;" />
          <homePath value="/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home" />
          <roots>
            <annotationsPath>
              <root type="composite">
                <root url="jar://$APPLICATION_HOME_DIR$/lib/jdkAnnotations.jar!/" type="simple" />
              </root>
            </annotationsPath>
            <classPath>
              <root type="composite">
                <root url="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/charsets.jar!/" type="simple" />
                <root url="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/deploy.jar!/" type="simple" />
                <root url="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/cldrdata.jar!/" type="simple" />
                <root url="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/dnsns.jar!/" type="simple" />
                <root url="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/jaccess.jar!/" type="simple" />
                <root url="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/jfxrt.jar!/" type="simple" />
                <root url="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/localedata.jar!/" type="simple" />
                <root url="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/nashorn.jar!/" type="simple" />
                <root url="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/sunec.jar!/" type="simple" />
                <root url="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar!/" type="simple" />
                <root url="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar!/" type="simple" />
                <root url="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/zipfs.jar!/" type="simple" />
                <root url="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/javaws.jar!/" type="simple" />
                <root url="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/jce.jar!/" type="simple" />
                <root url="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/jfr.jar!/" type="simple" />
                <root url="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/jfxswt.jar!/" type="simple" />
                <root url="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/jsse.jar!/" type="simple" />
                <root url="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/management-agent.jar!/" type="simple" />
                <root url="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/plugin.jar!/" type="simple" />
                <root url="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/resources.jar!/" type="simple" />
                <root url="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/rt.jar!/" type="simple" />
                <root url="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/lib/ant-javafx.jar!/" type="simple" />
                <root url="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/lib/dt.jar!/" type="simple" />
                <root url="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/lib/javafx-mx.jar!/" type="simple" />
                <root url="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/lib/jconsole.jar!/" type="simple" />
                <root url="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/lib/packager.jar!/" type="simple" />
                <root url="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/lib/sa-jdi.jar!/" type="simple" />
                <root url="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/lib/tools.jar!/" type="simple" />
              </root>
            </classPath>
            <javadocPath>
              <root type="composite" />
            </javadocPath>
            <sourcePath>
              <root type="composite">
                <root url="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/src.zip!/" type="simple" />
                <root url="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/javafx-src.zip!/" type="simple" />
              </root>
            </sourcePath>
          </roots>
          <additional />
        </jdk>
      </component>
    </application>
    

    无论如何,新文件看起来像这样,现在我没有遇到我的问题(由于正文限制,我无法直接在此处发布内容) https://pastebin.com/EdDKpZAT

    但是,当我尝试在我的项目中创建新模块时,Android Studio 仍然使用我认为错误的配置和 JDK7 设置来创建它:

    apply plugin: 'java-library'
    apply plugin: 'kotlin'
    
    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    }
    
    sourceCompatibility = "1.7"
    targetCompatibility = "1.7"
    

    但在该模块中,我可以导入对 javax 的引用

    【讨论】:

      猜你喜欢
      • 2019-03-19
      • 2021-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-28
      • 2019-04-04
      • 2019-05-28
      • 2017-07-04
      相关资源
      最近更新 更多