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文件,你也可以自己创建,文件我会在最后留下上传地址
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)
@NativeClass
public 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);
}