RoboVM和libGDX的绑定[用java调用ios的静态库.a]

来源:互联网 发布:外国人吃西洋参吗 知乎 编辑:程序博客网 时间:2024/06/10 04:30

1.用object-c创建ios静态链接库

 请看:用xocde5 创建动态链接库 http://blog.csdn.net/haishu_zheng/article/details/16992259
我创建的函数名儿是:
#import <Foundation/Foundation.h>#import <AVFoundation/AVFoundation.h>@interface Mymic : NSObject- (void) myPrint;-(float) testReturnFloat;-(int) testReturnInt;-(void) testInput:(int) num;@end

实现是:
#import "mic.h"@implementation Mymic-(void) myPrint{     NSLog(@"create static library success!");}-(float) testReturnFloat{   // float a = 1000.0;    return 1000.0;}-(int) testReturnInt{   // int a  = 123456;    return 123456;}-(void) testInput:(int)num{    NSLog(@"传入的参数是:%d", num);}


2.找到你创建的.a文件

我创建了一个.a文件,你也可以自己创建,文件我会在最后留下上传地址
http://download.csdn.net/detail/qq634416025/7098295

3.把.a文件移到项目文件夹

我假设您在本教程中使用的libGDX框架,但是它的功能一样,如果你不是。将libMymic.a到您的RoboVM项目库/ IOS/目录下

4.编辑robovm.xml让libgdx找到.a文件


5.创建一个新java文件:用java调用oc方法

package com.zyygame.main;import org.robovm.cocoatouch.foundation.NSObject;import org.robovm.objc.ObjCRuntime;import org.robovm.objc.annotation.Method;import org.robovm.objc.annotation.NativeClass;import org.robovm.rt.bro.annotation.Library;@Library(Library.INTERNAL)@NativeClasspublic class Mymic extends NSObject{static { ObjCRuntime.bind(Mymic.class);}@Method(selector = "myPrint")public native void print();@Method(selector = "testReturnFloat")public native float returnFloat();@Method(selector = "testReturnInt")public native int returnInt();//只要在@Method 里面输入在oc里面写的方法名就行 带参数的请打上冒号
//然后在下面定义方法的时候只要返回值和参数正确 方法名随便怎么写都行@Method(selector = "testInput:")public native void testInput(int num);}

6.调用方法

7.运行结



3 0