2015-02-10 71 views
2

我正在使用j2objc。使用j2objc拋出錯誤「類無法解析爲類型」

我有2類:

  • LabelPosition.java

  • Event.java

在事件我要LabelPostion

我能翻譯獨立引用類標籤位置沒有問題。 包結構和文件.h & -m被創建。

現在我試着翻譯了Event.java,它參考了LabelPosition如下:

./j2objc --verbose -d objective-c -sourcepath . Event.java 

我得到的錯誤:

error: Event.java:79: LabelPosition cannot be resolved to a type 
error: Event.java:79: LabelPosition cannot be resolved to a type 
error: Event.java:284: LabelPosition cannot be resolved to a type 
error: Event.java:285: LabelPosition cannot be resolved to a type 
error: Event.java:287: LabelPosition cannot be resolved to a type 
error: Event.java:288: LabelPosition cannot be resolved to a type 

以下屏幕顯示了我Folderstructur: enter image description here

我做錯了什麼?

回答

1

Xcode無法處理子目錄中的頭文件 - 所有內容都必須位於同一個目錄中。這很容易解決:添加--no-package-directories標誌並重建所有內容。

+0

我剛剛添加了--no-package-directories到我現有的命令中,但我又得到了同樣的錯誤。你想到它必須全都在同一個文件夾中。這是否意味着所有關於截圖中的我的folderstructur? - >「Events.ava」和「LabelPositon.java」與命令j2objc位於同一個文件夾中。還有什麼要做的嗎? – 2015-02-12 07:03:14

+0

對不起,我以爲你在用Xcode編譯。 「javac -d objective-c -sourcepath。Event.java」是否成功? j2objc的前端是一個Java編譯器,它需要與javac相同的路徑。我的猜測是這些源中的一個或兩個都有一個包語句,所以應該在與該語句匹配的子目錄中。例如,如果LabelPosition具有「package foo.bar;」那麼源代碼需要位於foo/bar/LabelPosition.java中。無論如何,一般的技巧是首先定義一個可用的javac命令,然後將「javac」更改爲「j2objc」。 – tball 2015-02-13 15:14:59

+0

非常感謝。我會嘗試... – 2015-02-13 17:07:43

相關問題