2013年07月02日

Apportableを試してみました(3)

なぜ前回ビルドがエラーで止まったのか、原因となる箇所はわかりました。 今回対象としているアプリでは、KissXMLを使っているのですが、 DDXMLNode.m の897行目にある CFStringTrimWhitespace の呼び出しに問題がありました。

		NSMutableString *resTmp = [NSMutableString stringWithUTF8String:(const char *)bufferPtr->content];
		CFStringTrimWhitespace((CFMutableStringRef)resTmp);
		xmlBufferFree(bufferPtr);
		return [[resTmp copy] autorelease];

上記に該当する箇所で、ビルドの途中で以下のようなワーニングが出ていました。

Compiling /Users/(一部略)/project/FruitsFields1/FruitsFields1/FruitsFields1/KissXML/DDXMLNode.m
/Users/(一部略)/project/FruitsFields1/FruitsFields1/FruitsFields1/KissXML/DDXMLNode.m:897:3: warning: 
      implicit declaration of function 'CFStringTrimWhitespace' is invalid in C99
      [-Wimplicit-function-declaration]
                CFStringTrimWhitespace((CFMutableStringRef)resTmp);
                ^
1 warning generated.

上記が原因となり、以下のようにエラーが発生していたようです。

/Users/(一部略)/project/FruitsFields1/FruitsFields1/FruitsFields1/KissXML/DDXMLNode.m:897: error: undefined reference to 'CFStringTrimWhitespace'
scons: *** [Build/android-armeabi-debug/FruitsFields1/apk/lib/armeabi/libverde.so] Error 1
scons: building terminated because of errors.
Exception AttributeError: "'NoneType' object has no attribute 'pack'" in > ignored

本来であれば、正しい呼び出し形式に修正すべきでしょうが、ここは先を急ぎ、まずは当該行をコメントアウトして、再度 apportable load してみたところ、無事ビルドが終了しました!

apportable load が成功すると、自動的にアプリが起動するのですが、ここで問題が生じました。(スクリーンキャプチャできなかったのが悔やまれるのですが)起動画面が表示されることは表示されるのですが、縦横比が明らかに異常で、本来の画面の一部しか表示されません。また、画面にタッチしても何も起こりません。

そこで一旦 GS03 のホームボタンを押して、あらためてアイコンから起動してみたところ、無事以下のような画面が表示されました!

ff_gs03.jpg

iPhone と画面サイズが異なるためバランスが悪いですが、上述の明らかな異常画面とは異なります。またタッチすると、 iPhone 版と同じように動作します。

また、以下はゲーム中の画面です。なぜか最初は画面の左下(原点)によってしまいますが、次の画面のように拡大すると正常(?)になるようです。この辺は apportable というより、元のアプリの作りが悪いだけということかもしれません。

ff_gs03_2.png
ff_gs03_3.png

なお異常画面を再現すべく、アプリのアンインストールなど試みましたが、以降はすべて正しく動作しています(謎)

ということで、まさに Layout issues であらかじめ指摘されているように、画面サイズへの配慮が必要そうですが(そこが致命的であるということかもしれませんが)、apportable 本来の「Objective-C で書かれたアプリを自動的に Android にポーティング可能」はほぼその通りに受け取れそう、という結論です。


FruitsFields - 寄付代わりに購入いただけると嬉しいです。
Icon-72.png as_available_appstore_icon_20091006.png

サポートページはこちら。
http://cbbandtqb.toypark.in/FruitsFields/index_jpn.html

posted by cbbandtqb at 22:36| Comment(0) | TrackBack(0) | 備忘録 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:


この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。