问题描述
抱歉,我已经浏览了许多听起来相似的问题,但没有一个对我有帮助.
Apologies, I've scanned the many similar-sounding questions and none of them have helped me.
我正在运行 Android Studio 3.0.1,我是新手,我正在关注在线教程HelloWorld"程序,但随后添加了对 java.util.Base64.getDecoder() 的调用.当我在我的实际手机 (Samsung Galaxy S8) 上运行它时,这会在运行时失败:
I'm running Android Studio 3.0.1, I'm a newbie, I'm following the online tutorial "HelloWorld" program but then adding a call to java.util.Base64.getDecoder(). This fails at runtime when I run it on my actual phone (Samsung 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 中有:
I have in AndroidManifest.xml:
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="27"/>
我有:编译 SDK 版本:API 26:Android 8.0 (Oreo)
I have: Compile SDK Version: API 26: Android 8.0 (Oreo)
我该如何解决这个问题?
How can I solve this problem?
我相信java.util.Base64"是标准 Java 库的一部分,至少对于我正在使用的版本,所以我不需要做任何特殊的事情来使用它.我对 Gradle 一无所知,但我知道我正在使用它.
I was under the belief that "java.util.Base64" was part of the standard Java library, at least for the version I'm using, so I shouldn't need to do anything special to use it. I don't know anything about Gradle but I know that I'm using it.
推荐答案
将 java.util.Base64
替换为 android.util.Base64
.android 不使用 openjdk 或 oracle jre,因此标准包可能不存在.
replace java.util.Base64
with android.util.Base64
. android doesn't use openjdk or oracle jre so the standard packages may not be there.
这篇关于Android 工作室:NoClassDefFoundError 与 java.util.Base64的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!