Support libraries that package native libraries -
Java Shell C++
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
app
gradle/wrapper
.gitignore
README.md
build.gradle
gradle.properties
gradlew
gradlew.bat
settings.gradle

README.md

Support libraries that package native libraries

Summary

1. Disable load so in your app code.

2. Porting Dynamic Link Library.

  • If you use the Linux operating system that is the most simple, just get the x86-64(Depending on your cpu architecture) 's so file, and add the dependency so library(Found in the ndk-bundle, platforms folder).

  • If you use the masOS operating system, you need to do a little more work. And you should have the native so library source code, and compile it under macOS system:

# .o

cc -c -I/System/Library/Frameworks/JavaVM.framework/Headers *.cpp

# get  xxx.dylib

g++ -dynamiclib -undefined suppress -flat_namespace *.o -o something.dylib
  • Windows is similar.

3. Load so library in your RobolectricApplication.

End, run your test case, well done:

load so test case

Detail

Sample code: RobolectricSupportNativeLibs

blog - http://rocko.xyz/2016/11/27/Android-Robolectric-加载运行本地-so-动态库/