【问题标题】:Android Import java.util.StringJoiner errorAndroid 导入 java.util.StringJoiner 错误
【发布时间】:2016-10-09 10:14:39
【问题描述】:

我尝试导入java.util.StringJoiner,但收到了这条消息

Usage of API documented as @since 1.8+ less... (⌘F1) This inspection finds all usages of methods that have @since tag in their documentation. This may be useful when development is performed under newer SDK version as the target platform for production.

我正在使用:

java 版本“1.8.0_102”

Java(TM) SE 运行时环境(内部版本 1.8.0_102-b14)

Java HotSpot(TM) 64 位服务器 VM(内部版本 25.102-b14,混合模式)

如何解决这个问题。谢谢大家帮助我!!

【问题讨论】:

  • 您无法使用 java 8 运行 android 应用...您的 sdk 可能是 1.8 但 JVM 不允许该版本
  • @ΦXocę웃Пepeúpaツ:所以我必须降级java?
  • @ThoNguyen,不,但你不能使用Java 8 only features

标签: java android android-studio


【解决方案1】:

StringJoiner 是在 API 级别 24 中添加的。如果您的 minSdkVersion 为 24 或更高(即只能在 Android 7.0+ 上运行),欢迎您使用它。如果您的 minSdkVersion 低于 24,请完全替换您对 StringJoiner 的使用,或者仅在运行 API 级别 24 或更高级别的设备上使用它。

您收到的具体消息是因为这个类不仅是在 API 级别 24 中引入的,而且它来自 Java 8。旧设备不支持 Java 8 类。

此外,Java 8 功能需要 Jack 编译器,目前它不是默认编译器。您需要关注the instructions to enable Java 8 support in Gradle,添加jackOptionscompileOptions 闭包:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.3"
    defaultConfig {
        applicationId "com.commonsware.myapplication"
        minSdkVersion 24
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

        jackOptions {
            enabled true
        }

    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

【讨论】:

  • 我已尝试更改minSdkVerion 24 并安装所有sdk 数据包7.0。但仍然无法正常工作。 :'(
  • @ThoNguyen:如果您详细解释一下“但仍然无法正常工作”是什么意思,对您的帮助会更容易。
  • 谢谢。我仍然看到此警告“API 的使用记录为 @since 1.8+ less... (⌘F1)”并且无法导入 java.util.StringJoiner。
  • @ThoNguyen:您还需要在 Gradle 中设置 Java 8 支持。查看更新的答案。
  • 天啊。非常感谢。我是android的新手。你救了我的命
猜你喜欢
  • 2012-08-15
  • 2016-10-27
  • 2017-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多