「トップページ/2006年03月14日/JADの改行コード」の編集履歴(バックアップ)一覧はこちら
「トップページ/2006年03月14日/JADの改行コード」(2006/03/15 (水) 00:17:25) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
#blognavi
3G対応不具合の原因は予想通りJADファイルに関係していましたが、私の予想とはぜんぜん違うものでした。例えばJADファイルの改行コードを疑ったりして、調査に時間をかけてしまっておりました。
その調査の途中、JADとMANIFESTの改行コードがLFでないと、V702NKでインストールに失敗する、ということを知りました。他の機種ではCR+LFでも良いらしいのですが、V702NKでは制限されるそうです。V702NKだけ見捨てるわけにもいきませんので、JADとMANIFESTをの改行コードをLFに統一することにしました。
vNextTrainのために用意したJADとMANIFESTは、もともとLFになっています。MANIFESTはそのままJARに取り込まれるのでOK。JADファイルは開発環境がJarサイズをJADファイルに追記するときに、なぜか改行コードがCR+LFになってしまいます。Eclipse+JSCL 1.2.2 Pluginを使っているのですが、Jarサイズを追記するupdatejadがCR+LFに変更してしまっていました。これは、updatejadの実装が原因というよりかは、JREのデフォルト改行コードの問題だと思われます。
そこで、Jarサイズの追記と同時にCR+LFになってしまったJADを、自動的にLFに戻すようにしてみます。updatejadタスク後の、archiveタスクにfixcrlfを追記して、以下のようにします。
<target name="archive">
<jar destfile="${bin}/${jarname}.jar" manifest="./MANIFEST.MF">
<fileset dir="${preverified}" />
<fileset dir="${res}" />
<fileset dir="${nexttrain_core}/resource/"
includes="**/*.png" />
</jar>
<copy file="./${jarname}.jad" tofile="${bin}/${jarname}.jad.crlf" />
<updatejad jadfile="${bin}/${jarname}.jad.crlf" />
<!-- Vodafone emulator plagin cannot handle special char code in path names.
copy the target file into the directory whose name is simple. -->
<!-- After executing 'updatejad', tasks modifying JAD files fail to
overwrite it. Copy to avoid it. -->
<copy file="${bin}/${jarname}.jad.crlf" tofile="${bin}/${jarname}.jad" />
<!-- Remove the first three lines in JAD added by tasks.
They cause error when we regist it to appli-get server. -->
<replace file="${bin}/${jarname}.jad">
<replacetoken><![CDATA[Manifest-Version: 1.0
Ant-Version: Apache Ant 1.5.3
Created-By: 1.4.2_10-b03 (Sun Microsystems Inc.)
]]></replacetoken>
<replacevalue></replacevalue>
</replace>
<!-- JavaSE on Windows modifies JAD file's return code fro
LF into CR+LF. CR+LF cause install error on 702NK -->
<fixcrlf srcdir="${bin}" eol="lf" includes="${jarname}.jad" />
</target>
fixcrlfは、updatejad後のJADファイルに適用するとPermission deniedといわれたので、一度コピーするようにしてあります。また、ついでにJADファイルの先頭に追加されるプロパティをいくつか削っています。これらを削らないとアプリ★ゲットのアップロード時に怒られてしまいますので。
これで、Jarサイズ追記後のJADファイルは、無事改行コードがLFとなりました。これで702NKにもvNextTrainをインストール可能になったはず。702NKのユーザさんに、vNextTrainを使っていただけるかどうかはまた別問題ですが...
#right{
カテゴリ: [[[NextTrain>トップページ/カテゴリ/NextTrain]]] - &trackback() - 2006年03月14日 23:57:14
}
#comment(nostyle,nsize8,size30)
#blognavi
#blognavi
3G対応不具合の原因は予想通りJADファイルに関係していましたが、私の予想とはぜんぜん違うものでした。例えばJADファイルの改行コードを疑ったりして、調査に時間をかけてしまっておりました。
その調査の途中、JADとMANIFESTの改行コードがLFでないと、V702NKでインストールに失敗する、ということを知りました。他の機種ではCR+LFでも良いらしいのですが、V702NKでは制限されるそうです。V702NKだけ見捨てるわけにもいきませんので、JADとMANIFESTをの改行コードをLFに統一することにしました。
vNextTrainのために用意したJADとMANIFESTは、もともとLFになっています。MANIFESTはそのままJARに取り込まれるのでOK。JADファイルは開発環境がJarサイズをJADファイルに追記するときに、なぜか改行コードがCR+LFになってしまいます。私はEclipse+JSCL 1.2.2 Pluginを使ってVアプリを開発しています。この環境でVアプリプロジェクトを作成すると、同時にantのビルドファイルbuild.xmlが作成されます。このbuild.xmlが起動するupdatejad(Jarサイズを追記するタスク)uがLFをCR+LFに変更してしまっていました。これは、updatejadの実装が原因というより、JREのデフォルト改行コードの問題だと思われます。
そこで、Jarサイズの追記と同時にCR+LFになってしまったJADを、自動的にLFに戻すことを試みました。updatejadタスク後の、archiveタスクにfixcrlfを追記して、以下のようにします。
<target name="archive">
<jar destfile="${bin}/${jarname}.jar" manifest="./MANIFEST.MF">
<fileset dir="${preverified}" />
<fileset dir="${res}" />
<fileset dir="${nexttrain_core}/resource/"
includes="**/*.png" />
</jar>
<copy file="./${jarname}.jad" tofile="${bin}/${jarname}.jad.crlf" />
<updatejad jadfile="${bin}/${jarname}.jad.crlf" />
<!-- Vodafone emulator plagin cannot handle special char code in path names.
copy the target file into the directory whose name is simple. -->
<!-- After executing 'updatejad', tasks modifying JAD files fail to
overwrite it. Copy to avoid it. -->
<copy file="${bin}/${jarname}.jad.crlf" tofile="${bin}/${jarname}.jad" />
<!-- Remove the first three lines in JAD added by tasks.
They cause error when we regist it to appli-get server. -->
<replace file="${bin}/${jarname}.jad">
<replacetoken><![CDATA[Manifest-Version: 1.0
Ant-Version: Apache Ant 1.5.3
Created-By: 1.4.2_10-b03 (Sun Microsystems Inc.)
]]></replacetoken>
<replacevalue></replacevalue>
</replace>
<!-- JavaSE on Windows modifies JAD file's return code fro
LF into CR+LF. CR+LF cause install error on 702NK -->
<fixcrlf srcdir="${bin}" eol="lf" includes="${jarname}.jad" />
</target>
fixcrlfは、updatejad後のJADファイルに適用するとPermission deniedといわれたので、一度*.jad.crlfにコピーし、それを*.jadに再コピーしてfixcrlfするようにしてあります。また、ついでにJADファイルの先頭に追加されるプロパティをいくつか削っています。これらを削らないとアプリ★ゲットのアップロード時に怒られてしまいますので。
これで、Jarサイズ追記後のJADファイルは、無事改行コードがLFとなりました。これで702NKにもvNextTrainをインストール可能になったはず。702NKのユーザさんに、vNextTrainを使っていただけるかどうかはまた別問題ですが...
#right{
カテゴリ: [[[NextTrain>トップページ/カテゴリ/NextTrain]]] - &trackback() - 2006年03月14日 23:57:14
}
#comment(nostyle,nsize8,size30)
#blognavi
表示オプション
横に並べて表示:
変化行の前後のみ表示: