【问题标题】:NoSuchMethodError: org.apache.commons.codec.binary.Base64.decode on AndroidNoSuchMethodError:Android 上的 org.apache.commons.codec.binary.Base64.decode
【发布时间】:2014-06-03 01:25:33
【问题描述】:

我在使用 commons-codec-1.9 的 Android api 19 中的一个简单应用上遇到此异常。 似乎 Android 使用的是旧的 commons-codec 库,但我无法弄清楚,因为。

我正在使用 Android Studio,我的 gradle 文件包含以下内容:

dependencies {
compile 'com.android.support:appcompat-v7:+'
compile fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
}

我有一个例外:

java.lang.NoSuchMethodError: org.apache.commons.codec.binary.Base64.decode           
        at com.SplashActivity.onCreate(SplashActivity.java:32)
        at android.app.Activity.performCreate(Activity.java:5241)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2162)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2248)
        at android.app.ActivityThread.access$800(ActivityThread.java:138)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1199)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5050)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)
        at dalvik.system.NativeStart.main(Native Method)

谢谢

【问题讨论】:

  • 这是一个老问题,但在我找到答案之前,谷歌就把我带到了这里。虽然文档中没有详细说明,但 Android 显然包含至少一些 Apache Commons 库的旧版本,并且这些库具有优先权。我从来没有看到你是否可以覆盖它们的明确答案,但我通过重构包名称并使用它们解决了我的问题。

标签: java android apache-commons-codec


【解决方案1】:

您应该使用 android.util.Base64 提供的编解码器,而不是使用 Apache Commons Base64 编解码器

【讨论】:

  • 从单元测试的角度来看,Android Base64 类要求在仪器测试下对用法进行测试。从可重用性的角度来看,java 库应该可以在任何地方工作,Android 对依赖项进行着色是一个合理的问题。简单地切换 Base64 实现并不总是一个答案。
猜你喜欢
  • 1970-01-01
  • 2014-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多