Android studio:带有java.util.Base64

时间:2018-02-09 02:15:04

标签: android android-studio

道歉,我已经扫描了许多类似的问题,但没有人帮助过我。

我正在运行Android Studio 3.0.1,我是新手,我正在关注在线教程" HelloWorld"程序,但然后添加对java.util.Base64.getDecoder()的调用。当我在我的实际手机(三星Galaxy S8)上运行它时,这在运行时失败:

              java.lang.NoClassDefFoundError: Failed resolution of: Ljava/util/Base64;

               Caused by: java.lang.ClassNotFoundException: Didn't find class "java.util.Base64" on path: DexPathList[[zip file "/data/app/com.skedgo.helloworld-1/base.apk", zip file "/data/app/com.skedgo.helloworld-1/split_lib_dependencies_apk.apk", zip file "/data/app/com.skedgo.helloworld-1/split_lib_slice_0_apk.apk", zip file "/data/app/com.skedgo.helloworld-1/split_lib_slice_1_apk.apk", zip file "/data/app/com.skedgo.helloworld-1/split_lib_slice_2_apk.apk", zip file "/data/app/com.skedgo.helloworld-1/split_lib_slice_3_apk.apk", zip file "/data/app/com.skedgo.helloworld-1/split_lib_slice_4_apk.apk", zip file "/data/app/com.skedgo.helloworld-1/split_lib_slice_5_apk.apk", zip file "/data/app/com.skedgo.helloworld-1/split_lib_slice_6_apk.apk", zip file "/data/app/com.skedgo.helloworld-1/split_lib_slice_7_apk.apk", zip file "/data/app/com.skedgo.helloworld-1/split_lib_slice_8_apk.apk", zip file "/data/app/com.skedgo.helloworld-1/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.skedgo.helloworld-1/lib/arm64, /system/lib64, /vendor/lib64]]

我在AndroidManifest.xml中:

<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="27"/>

我有:编译SDK版本:API 26:Android 8.0(奥利奥)

我该如何解决这个问题?

我认为&#34; java.util.Base64&#34;是标准Java库的一部分,至少对于我使用的版本而言,所以我不需要做任何特殊的事情来使用它。我对Gradle一无所知,但我知道我正在使用它。

2 个答案:

答案 0 :(得分:8)

你试过android.util.Base64吗? android没有使用openjdk或oracle jre,所以标准软件包可能不存在。

答案 1 :(得分:0)

只需更换

import java.util.Base64;

使用

import android.util.Base64;

然后将您的代码修改为如下所示(仅作为示例):

String encoded = Base64.encode(someString.getBytes(), Base64.DEFAULT)); // for encoding
String decoded = Base64.decode(encoded, Base64.DEFAULT)); // for decoding