我想在我的Android應用程序中使用python解釋器來運行SymPy。我已經使用本指南編譯了Python for arm。 http://mdqinc.com/blog/2011/09/cross-compiling-python-for-android/如何在android中使用.so庫
這給我一個libpython2.7.so文件,我把它放到jniLibs/armeabi /中。 在我的應用我加載它,如下所示:
public class PythonTest {
static {
System.loadLibrary("python2.7");
}
public static native void Py_Initialize();
public static native void Py_Finalize();
public static native int PyRun_SimpleString(String s);
}
我試圖使用從位於include目錄的頭它也可以在這裏找到方法:https://docs.python.org/2/c-api/
當我上運行的應用程序我的設備我得到以下錯誤:
No implementation found for void com.example.dorian.testapplication.PythonTest.Py_Initialize() (tried Java_com_example_dorian_testapplication_PythonTest_Py_1Initialize and Java_com_example_dorian_testapplication_PythonTest_Py_1Initialize__)
所以對我來說這似乎是加載庫,但它似乎認準JNIEXPORT功能。但是,如果不編寫特定的C++文件,我不應該使用這個庫嗎?如果不是,我將如何實現這一點。可能有一個工具來生成包裝文件或類似的東西?
http://stackoverflow.com/questions/5659068/jni-tutorial-for-android應該有所幫助。 – headuck