我終於用C++下的android使我的工作。
有兩個困難:
1 - 從由push_arm創建的臂環境訪問C++頭。我不得不添加正確的包括我的食譜,並修改默認CXX VAR:
#dirty hack
export C_INCLUDE="-I$ANDROIDNDK/sources/cxx-stl/gnu-libstdc++/$TOOLCHAIN_VERSION/include/ -I$ANDROIDNDK/sources/cxx-stl/gnu-libstdc++/$TOOLCHAIN_VERSION/libs/armeabi/include/"
export OLD_BOUBOU=$CC
export CC="$CXX $C_INCLUDE"
try $BUILD_PATH/python-install/bin/python.host setup.py install -O2
#try cp libgnustl_shared.so $LIBS_PATH/
try cp $ANDROIDNDK/sources/cxx-stl/gnu-libstdc++/4.4.3/libs/armeabi/libgnustl_shared.so $LIBS_PATH/
export CC=$OLD_BOUBOU
2 - 查找包含libstl功能的共享庫,並加載它。這是更難的部分:
經過一番研究,我發現stl函數存儲在libgnustl_shared.so中,而不是listdC++。so。所以你必須在你的apk中嵌入這個庫。
這是該行try cp $ANDROIDNDK/sources/cxx-stl/gnu-libstdc++/4.4.3/libs/armeabi/libgnustl_shared.so $LIBS_PATH/
然後,你要加載的目的。我已修改:
src/src/org/renpy/android/PythonActivity.java
src/src/org/renpy/android/PythonService.java
by adding this line after the others System.loadLibrary() :
System.loadLibrary("gnustl_shared");