http://discuss.cocos2d-x.org/t/sdkbox-adcolony-crash-on-startup/33860
E/AndroidRuntime(18413): java.lang.UnsatisfiedLinkError: Cannot load library: link_image[1941]: 1978 could not load needed library 'libadcolony.so' for 'libMyGame.so' (load_library[1096]: Library 'libadcolony.so' not found)
Android 4.3 以下的系统在加载依赖库时只会到系统的动态库目录查找,而 Android 4.3 修正了这个问题,会首先在应用的 lib 目录查找。所以报错的机器的系统都是 4.3 以下的。
结论
在游戏的 Android.mk 中引用的动态库需要通过 System.loadLibrary() 方法加载,并且要先于游戏的动态库加载。
解决办法:
public class AppActivity extends Cocos2dxActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
System.loadLibrary("js");
System.loadLibrary("adcolony");
super.onCreate(savedInstanceState);
SDKBox.init(this);
}
link: