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

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);
}

6.调用方法


7.运行结果



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值