java.lang.UnsatisfiedLinkError: Cannot load library:

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:

  • https://blog.reohou.com/android-load-native-shared-library-failed-java-lang-unsatisfied-link-error-cannot-load-library/

你可能感兴趣的:(java.lang.UnsatisfiedLinkError: Cannot load library:)