1

我想Cocoa Touch Framework在 Xcode 中导入由 j2objc 翻译的文件,并得到一些错误。

我的实施步骤如下:

PeopleProject-> Pepole.java

   class Pepole{
          .....
    }
  1. 创建一个框架(命名为objCFrameWork:),语言是 xcode 中的 Objective-C(不是静态库)。 在此处输入图像描述

  2. j2objc 的配置(构建规则,Settings.xcconfig

    构建规则 在此处输入图像描述

设置.xcconfig

在此处输入图像描述

  1. 在框架项目中新建一个文件(Campony)并导入 People.h

     @interface Company : NSObject
     @property(nonatomic) People *CEO;
     @end
    
  2. objCFrameWorkDemo使用_objCFrameWork

     Company *c = [[Company alloc] init];
     [c.CEO sayWithNSString:@"Hello"];
    

6.构建objCFrameWork成功。

7.构建objCFrameWorkDemo失败。

在此处输入图像描述

来源https ://github.com/leogeng/J2ObjC_Framework.git

4

1 回答 1

1

如果 Java 源 (A.java) 声明它是包的一部分,则默认翻译要求您将包作为子目录包含在内。例如,如果类 A 在 foo.bar 包中,则标题需要引用为#include "foo/bar/A.h".

如果这不起作用(Xcode 不能很好地支持子目录,所以很多项目都避免使用它们),然后运行带有--no-package-directories标志的 j2objc 以生成不使用子目录的文件。这要求应用程序中的所有 Java 源文件都具有唯一的类/接口名称,因为不再有包来区分它们(JRE 类除外,它总是需要包子目录)。

于 2016-06-07T17:08:37.617 回答