Base64支持不同的API级别

在我的Android应用程序

的build.gradle

android { compileSdkVersion 27 defaultConfig { minSdkVersion 16 targetSdkVersion 27 ... } .... } 

Kotlin代码

 val data = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { Base64.getDecoder().decode(str) } else { Base64.decode(str, Base64.DEFAULT) // Unresolved reference: decode } 

显然,在API 24之前使用Base64变体时,出现了编译错误。

但是我怎样才能像以前一样支持所有的API级别并使用Base64?

使用android.util.Base64将从Api 8解决您的问题

 val data= android.util.Base64.decode(str, android.util.Base64.DEFAULT); 

你应该使用android.util.Base64类。 它是从API 8支持的,

Base64.getDecoder()函数是java.util.Base64的一部分,在Java8中是新的。