如何在另一个Android项目中使用生成的.so库?

时间:2016-05-23 05:46:23

标签: java android-studio android-ndk java-native-interface shared-libraries

我已经关注 http://kn-gloryo.github.io/Build_NDK_AndroidStudio_detail/ ,效果很好!但是,我想在新的Android应用程序中使用生成的.so库,我根本不知道如何做到这一点...我已经苦苦挣扎了几天,如果可以分享任何分步教程这会有所帮助!

这是我用来生成.so文件的Android项目 MyApp

enter image description here

MainActivity:

enter image description here

Java类:MyNDK

enter image description here

头文件:com_demo_ble_myapp_MyNDK.h

enter image description here

Cpp文件:MyLibrary

enter image description here

这是我的新Android项目 useSOLib 的结构,我只是将所有文件从 MyApp \ app \ src \ main \ libs 复制到 useSoLib \应用\ SRC \主\ jniLibs

enter image description here

这是useSoLib中的MainActivity:

enter image description here

我可以构建 - >使项目成功,但当我在设备上运行它时,应用程序显示“不幸的是,useSoLib已停止”。压碎了。我知道我在这里错过了一些步骤,但我是Android Studio的新手,所以我不知道我应该从哪里开始...提前感谢您的任何建议! :)

1 个答案:

答案 0 :(得分:1)

您应该导入 MyNDK 并使用其实例。 JNI库与Java类相关。更改代码:

public class MainActivity extends AppCompatActivity{
   @Override
   protected void onCreate(Bundle savedInstanceState){

       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
       Log.i("MyTag", new MyNDK().getMyString());
   }
}

您可以将 MyNDK 类导出为jar包,也可以创建 aar 捆绑包。然后使用JNI库将Java类导入到新项目中。

帖子How to Build *.so Library Files into AAR Bundle in Android Studio可能会对您有所帮助。

相关问题