因此,我已经开始为Bump开发,由于他们的短视性,他们不支持基于x86的安卓设备/模拟器。只有手臂。
好吧,撇开小市场不谈,这对我来说是个大问题,因为出于性能原因,我非常喜欢使用基于x86的仿真器进行开发。
那么,(既然Bump在模拟器上是没有意义的),我如何在模拟器中运行时禁用Bump库的加载?
import com.bump.api.IBumpAPI;
import com.bump.api.BumpAPIIntents;错误:
08-06 17:58:30.895: E/AndroidRuntime(1799):java.lang.UnsatisfiedLinkError:无法从加载器java.lang.UnsatisfiedLinkError加载androidjava.lang.Runtime.loadLibrary(Runtime.java:365) =/data/app-lib/com.xxxxxxxxxxxxxx2: findLibrary返回null 08-06 17:58:30.895: E/AndroidRuntime(1799):at java.lang.System.loadLibrary 08-06 17:30.895: E/AndroidRuntime(1799):at java.lang.System.loadLibrary(System.java:535) 08-06 17:58:30.895: E/AndroidRuntime(1799):at com.bump.api.BumpAPI。(BumpAPI.java:122) 08-06 17:58:30.895: E/AndroidRuntime(1799):at java.lang.Class.newInstanceImpl(原生方法) 08-06 17:58:30.895: e/AndroidRuntime(1799年):at java.lang.Class.newInstance(Class.java:1319)
发布于 2013-08-14 12:34:13
虽然有点复杂,但您可以通过使用android库项目将项目分成几个相关项目来实现这一点。目前你可能有这样的事情
您需要将您的应用程序分成三个独立的项目:
这个理论和having a paid and a free version of your app是一样的。除了付费和免费,你有颠簸和非颠簸。
发布于 2013-08-11 08:32:37
唯一的方法是在模拟器上运行时,暂时从应用程序中删除与Bump库和Bump相关的代码,或者创建一个重复的应用程序,将Bump从其中删除(特别是用于在x86上运行)。即使您能够禁用凸点库,android仍然会尝试执行任何使用这些库的代码,比如import com.bump.api.IBumpAPI;,这将导致崩溃。
发布于 2013-08-17 12:36:45
为什么不使用JNI在C中创建一个自定义库来满足链接依赖,并在您的项目中使用它来获取模拟器呢?
这类似于创建伪包装器或shim -例如:在Java中有一个名为fooBar的函数,它是由真正的库targetting使用的,它可能具有参数等,并返回一些内容。在伪人工库中,使用fooBar创建一个,使用相同的参数并返回零或虚拟对象,从而获得仿真程序。
考虑到API和参数、函数名等,这听起来可能非常尴尬,这是我的头等大事。要知道,沿着这条路线走下去,任务将取决于Bump库使用和治理的API有多大,我正在谈论的是原生.so编译的ARM版本。
https://stackoverflow.com/questions/18087217
复制相似问题