zoukankan      html  css  js  c++  java
  • 打包ane之后在FB上生成ipa的阶段错误

    1.

    初次打包 碰到这个错误得 就是你mac 上jre版本的问题 此时用 FB 必须是跑在jre1.6版本上的 我得是1.8

    上图

    版本可以自己查下 已经截图了 而且 你如果想要下载 1.6版本的 就得去苹果官网下mac 版本的 oracle官网 没有 

    更新到1.6版本后 才算配置好基本的环境 但是 还可能出现各种问题  我一一给各位展示下

    2.

    这个错误 是你打ane包得时候  没把

     

    要把这个文件也打进ane中 而上面的那个错误 解决办法 就是 第二个方框的最低版本 要设置 这里 最低要5.0 默认4.0 会报错

    3.

    Undefined symbols for architecture armv7:
    "_OBJC_CLASS_$_Partytrack", referenced from:
    objc-class-ref in libcom.otaku.OtakuGames.a(methodAction.o)
    "_OBJC_CLASS_$_OTKinterfaceTool", referenced from:
    objc-class-ref in libcom.otaku.OtakuGames.a(methodAction.o)
    ld: symbol(s) not found for architecture armv7
    Compilation failed while executing : ld64

    这个错误 最让我苦恼 搞了2天

    先说下 上面的文件环境  Partytrack和OTKinterfaceTool 都是我引用的第三方库的类名 ,methodAction.o 这个是我第三方的类名所使用地方的类

    这个错误 我找了N多资料 什么 设置archieve 为NO 啊 还有build phases 的compile sources 中设置要引用类的.m 文件 我都试了 也没用

    好了 解决办法 直接上图了

    没错 是要在 build phases 中的link binary with libraries导入第三方的静态库 (好吧 我小白了 第一次知道 第三方也要导入静态库),这里 不单单要导入第三方的框架,还要导入第三方的静态库 。

    4.终于 把项目所有的功能都打进ane了 下面得 主要分享下回调 如何 写入ane

    ---1>首先 在as库中 加入以下代码 其实 就增加了一行代码 这行代码 意思是加入监听者

    public function OtakuGame()

    {

    super();

    if(_extContext == null) {

    _extContext = ExtensionContext.createExtensionContext("com.otaku.OtakuGames", null);

    _extContext.addEventListener(StatusEvent.STATUS, statusHandler);

    //NativeApplication.nativeApplication.addEventListener(InvokeEvent.INVOKE,onInvoke);

    }

    }

    ----2>还是在as库中加入 这个方法是对上面事件监听的实现

    private function statusHandler(event:StatusEvent):void

    {

    dispatchEvent(event);

    }

    ----3>以下就是测试代码了 就是在Flash中 提供给别人使用的 接口测试 此处 以登录 接口测试 当然是登录的回调了

    protected function button1_clickHandler(event:MouseEvent):void

    {

    OtakuGame.getInstance().login();

    OtakuGame.getInstance().addEventListener(StatusEvent.STATUS,statusHandler);

    }

    其实 也是就加了一行的代码 把前面得事件监听者 加进来

    ---4>这个就是事件监听的具体实现了

    private function statusHandler(event:StatusEvent):void

    {

    var xml:XML = XML(event.level);

    if(event.code == "loginCallBack")

    {

    MessageTextAppendString("token:"+xml.token);

    MessageTextAppendString("userid:"+xml.userId);

    MessageTextAppendString("tokenExpire:"+xml.tokenExpire);

    MessageTextAppendString("sign:"+xml.sign);

    }

    ---5>下面该是 回调事件 我们怎么让自己得回调事件和air 联系到一块 上面只是声明 具体的内部实现 还是要在自己得Xcode中

     //登录的回调

        FREDispatchStatusEventAsync(g_ctx, (const uint8_t*)"loginCallBack", (const uint8_t*)[[doc toString] UTF8String]);

    有人可能会疑惑一点 仔细看上卖的 实际要得是三个参数 第一个参数 是上下文 自己

    extern FREContext g_ctx; 声明下 即可  第二个参数是 event.code  第三个参数是event.level .

    看到这里 有没有感觉到和上面的代码 哪点有点相似 仔细比对下 就在---4>中得 那是和上面一一对应的 其实这个和 字典类型 差不多得性质

    event.code 是key  event.level 是value  我之所以 实例化了一个xml 是  回调后得参数不止一个 xml 可以看做另一个存贮的字典

    好了 各位亲们 说实话 不想让你们搜到我这个blog 因为 ane的问题 太多了 太恶心了 各种错误根本不好找 就是一个哪怕句号没写 就能让你找两天的 唉 我算是熬过来了

    如果有问题 你们再留言吧

  • 相关阅读:
    利用ResultFilter实现asp.net mvc3 页面静态化
    c#的DateTime.Now函数详解
    C#中使用DES和AES加密解密
    C#实现DES加密解密,AES加密解密
    MyEclipse的破解代码,适用各个版本
    C# DataGridView分页显示
    C# 对话框使用大全
    C# 通过串口发送短信
    C# axWindowsMediaPlayer制作播放器
    C#关于log4net(Log For Net)
  • 原文地址:https://www.cnblogs.com/pp-pping/p/4459292.html
Copyright © 2011-2022 走看看