有人用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,如果你成功了,请一定给我留言!

移动mmbilling似乎有个BUG,通过JNI调用会抛出异常的更多相关文章

  1. 【JNI】OPUS压缩与解压的JNI调用(.DLL版本)

    OPUS压缩与解压的JNI调用(.DLL版本) 一.写在开头: 理论上讲,这是我在博客园的第一篇原创的博客,之前也一直想找个地方写点东西,把最近做的一些东西归纳总结下,但是一般工程做完了一高兴就把东西 ...

  2. Android Jni 调用

    Chap1:JNI完全手册... 3 Chap2:JNI-百度百科... 11 Chap 3:javah命令帮助信息... 16 Chap 4:用javah产生一个.h文件... 17 Chap5:j ...

  3. JAVA的JNI调用

    由于JNI调用C和调用C++差不多,而且C++中可以混合写C代码,所以这里主要是写关于JNI调用C++的部分. 一般步骤: 先是写普通的Java类,其中包括本地方法调用.  然后编译这个Java类,调 ...

  4. HAL中通过JNI调用java方法【转】

    转载请注明本文出处:http://www.cnblogs.com/xl19862005 作者:Xandy 由于工作的需要,最近一直在研究HAL.JNI.Java方法之间互调的问题,并做了如下一些记录和 ...

  5. JAVA使用JNI调用C++动态链接库

    JAVA使用JNI调用C++动态链接库 使用JNI连接DLL动态链接库,并调用其中的函数 首先 C++中写好相关函数,文件名为test.cpp,使用g++编译为DLL文件,指令如下: g++ -sha ...

  6. JNI调用测试

    有需求使用JNI调用,籍着这个机会按照<Linux下测试Java的JNI(Java Native Interface)>上进行了下测试. 这篇文章记录得很清楚了,对原理未做深入的分析,希望 ...

  7. Java JNI调用c语言的dll测试

    最近复习C语言和java语言(10年没用了,温习一下),用JNI调用C语言的dll测试,以前没做过,在网上找了很多,总结如下: 环境:windows 10(64位) + JDK(32位,版本1.7.0 ...

  8. [置顶] android利用jni调用第三方库——第三篇——编写库android程序整合第三方库libhello.so到自己的库libhelloword.so

    0:前言: 在第二篇中,我们主要介绍了丙方android公司利用乙方C++公司给的动态库,直接调用库中的方法,但是这样方式受限于: 乙方C++公司开发的动态库是否符合jni的规范,如果不规范,则不能直 ...

  9. Ubuntu下,在Eclipse中使用JNI调用ffmpeg

    Android的应用层开发大部分还是采用JAVA,如果想使用ffmpeg库,就必须利用JNI,使得Java可以调用C/C++的库. JNI其实就是定义的一个转接接口,可以让Java的代码调用C/C++ ...

随机推荐

  1. Javascript 匀速运动——应用案例:网站常用功能分享到

    网站上会经常用到Javascript 中的运动,这次与大家分享一下一些运动的基本应用 . 方便大家在开发中能够直接使用. 代码简单易懂,适用于初学者.最后会一步一步整理出一套自己的运动框架. 应用案例 ...

  2. Struts2部分标签

    由于Struts多用OGNL语言所以使用给类标签之前需引入<%@taglib prefix="s" uri="/struts-tags"%> 1.f ...

  3. jmeter实例演示

    Jmeter 是比较轻便的性能测试工具,下面根据一个实例演示下jmeter的常见用法 一.前期准备,在使用之前,先分析测试需求,比如:需不要登录?需不需要监视服务器性能?多线程还是多循环?需不需根据流 ...

  4. Python 字符串格式化示例

    先看代码吧. #!/usr/bin/env python #-*- coding: utf-8 -*- __author__ = 'jiang' __creattime__ = '2015/10/31 ...

  5. Umbraco模型默认属性

    Media Model的属性: umbracoFileumbracoWidthumbracoHeightumbracoBytesumbracoExtension

  6. eclipse中使用EasyExplorer插件定位文件 [转载]

    如果你经常需要在Eclipse里打开相关资源文件所在的文件夹,比较麻烦,要右键,属性,在Location一栏中把所在的文件夹拷贝一下,然后再去资源管理器里输入这个路径,回车,打开它. 解决方法: 用E ...

  7. 通过iframe在其父窗口中打开隐藏元素

    先上代码 $(".login-box,#dl,.top_01 a:eq(1)").click(function(){ if(self!=top){ parent.$("# ...

  8. 一个SQL update语句

    须要每隔一段时间选取最老的商户更新时间戳: update DP_Shop set DP_Shop.LastDate = now() where DP_Shop.ShopId in (select Sh ...

  9. SQL学习之分组数据Group by

    简介:"Group By"根据字面上的意思理解,就是根据"By"后面指定的规则对数据进行分组(分组就是将一个数据集按照"By"指定的规则分成 ...

  10. Heritrix个性化设置抓取目标

    本文是Heritrix的使用的高级篇,针对对Heritrix已经能够运行的码农朋友们! 我们在抓取网页的时候,网页的链接中往往会包含有js.css.图片.视频等文件,第一次执行抓取任务的时候,许多农民 ...