文章可以帮你解决android下调用python方法获取返回值,往python函数中传参等。。。
我这里使用AS,如果使用ec开发的直接看 http://www.srplab.com/cn/index.html 官方下载的开发包 里面有demo,我下载了可以跑通;
不管是不是AS和ec,开始还是去看下CLE官网的开发包吧,下载下来看看,ec的有例子,可以编译过;
http://www.srplab.com/cn/index.html
开发包下载: http://www.srplab.com/cn/files/products.html
你可能会遇到的问题
1:注意so版本;版本都要一致,从开发包里复制粘贴;
2:注意so引入路径;as和ec是有区别的;
有什么问题大家可以一起讨论,之前找了很多资料,只有这个最后成功了,但是开始也有很多问题,还有通过JNI的 , 但是引入python.h 和python libs有问题VC上可以,在AS这个开发工具上怎么搞不知道,,现在这种移植也还行,简单,比较方便;之前还看了SL4A那个 也太扯淡了 ; jython在jvm环境下编译没毛病,一个jar搞定,但是如果在android下编译,那就不能用了,dvm和jvm确实不一样的;;;还是第一次直观的表现出来;还有一些其它的,太难懂,就不一一说了;
如下图:
libs的和jniLibs里面的so;
assets中放.py的文件和python的zip包;
我的add.py文件的代码
import time
def get_time():
return time.time();
print("sin sin sin sin sin")
def add_num(a,b): // 相加
return a+b
def get_array(a): // 外边传入一个数组
return a[0]
def get_Str(): // 返回字符串
return "sin niu bi"
里面import time 这里会爆红,需要把 time.cpython-34m.so放到assets下面可以执行get_time()这个函数;
下面是代码;
public class MainActivity