zoukankan      html  css  js  c++  java
  • 移动mmbilling似乎有个BUG,通过JNI调用会抛出异常

    有人用JNI调用过mm么?不知道你成功了没有,我试了多种方法,有一个错误始终存在,怀疑上个BUG。使用方式:
    通过NativeActivity的clazz获取ClassLoader,然后找到mm.purchasesdk.Purchase,实例化后,调用Init()
    错误信息:
    06-28 05:14:09.746: E/d(4709): failed to find resource file(mmiap.xml}
    06-28 05:14:09.776: D/AndroidRuntime(4709): Shutting down VM
    06-28 05:14:09.776: W/dalvikvm(4709): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
    06-28 05:14:09.786: E/AndroidRuntime(4709): FATAL EXCEPTION: main
    06-28 05:14:09.786: E/AndroidRuntime(4709): java.lang.NullPointerException
    06-28 05:14:09.786: E/AndroidRuntime(4709): 
    at mm.purchasesdk.d.a.a(Unknown Source)
    06-28 05:14:09.786: E/AndroidRuntime(4709): 
    at mm.purchasesdk.f.a(Unknown Source)
    06-28 05:14:09.786: E/AndroidRuntime(4709): 
    at mm.purchasesdk.Purchase.init(Unknown Source)

    实际上:
    我APK中有mmiap.xml文件,通过ClassLoader的getResourceAsStream也可以读取这个文件。
    而通过JNI直接findClass获取类,或使用SystemClassLoader都是获取类以及读取文件都是不成功的。
    所以分析:
    mmbilling库中,大概使用了ClassLoader的getSystemClassLoader得到的ClassLoader来读取文件,所以无法成功。

    应该修改为从一个已有类的实例中GetClassLoader才可以。

    不知有没有谁NativeActivity集成过mmbilling,如果你成功了,请一定给我留言!

  • 相关阅读:
    PHP面向对象
    PHP正则表达式
    PHP数组
    PHP常用函数
    PHP自定义函数与字符串处理
    PHP函数
    PHP语句
    WAMP环境配置
    Bootstrap输入框组
    Bootstrap按钮组嵌套、垂直排列、两端对齐
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3161399.html
Copyright © 2011-2022 走看看