• 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.运行结



  • 相关阅读:
    android:taskAffinity与android:finishOnTaskLaunch之我见
    Android 实现两屏幕互相滑动
    Android: 如何打开assets or raw文件夹下的数据库文件
    Android自定义进度条
    a标签在ie6下点了没反应
    strtotime 稍有不同
    php遍历时修改 传地址
    css3pie
    js 数据拷贝
    不重启iis的情况下切换iis的.net版本
  • 原文地址:https://www.cnblogs.com/tqj-zyy/p/4559760.html
Copyright © 2020-2023  润新知