0

Android製品デバイス(ベースコードはAndroid 2.3)でCTSを実行していますが、次の場合に失敗しました。

java.io.UnsupportedEncodingException: GB18030 at java.nio.charset.Charset.forNameUEE(Charset.java:317)
at java.nio.charset.Charset.forNameUEE(Charset.java:317)
at java.lang.String.getBytes(String.java:973)
at org.apache.harmony.luni.tests.java.lang.StringBufferTest.test_toString(StringBufferTest.java:101)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:529)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1447)
at java.nio.charset.Charset.forName(Charset.java:304)
at java.nio.charset.Charset.forNameUEE(Charset.java:315)
at java.nio.charset.Charset.forNameUEE(Charset.java:317)
at java.lang.String.getBytes(String.java:973)
at org.apache.harmony.luni.tests.java.lang.StringBufferTest.test_toString(StringBufferTest.java:101)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:529)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1447)
at java.nio.charset.Charset.forName(Charset.java:304)
at java.nio.charset.Charset.forNameUEE(Charset.java:315)

Android SDK 2.3.3エミュレーターで同じテストを実行しましたが、合格しました。

次に、Android 2.3.3と私のコードのソースコードを比較しましたが、違いはありません。しかし、私が気づかなかった何かが違うに違いないと思います。その後、この問題はICU4Cに関連していることがわかりましたが、ICU4Cは非常に複雑です。この問題を追跡するための手がかりを教えてもらえますか?または、問題の追跡をどのように進める必要がありますか?

どうもありがとう。

4

3 に答える 3

0

私はこれをicuバージョン4.6で行いました。icuをダウンロードし、android.mkのdir"common".cおよび.cppファイルからすべてのコードをバインドします。静的ライブラリを作成し、application.mk内で次のフラグを使用してコンパイルします。

APP_CPPFLAGS:= -DU_COMMON_IMPLEMENTATION -DU_STATIC_IMPLEMENTATION -DU_PALMOS APP_CFLAGS:= -DU_COMMON_IMPLEMENTATION -DU_STATIC_IMPLEMENTATION -DU_PALMOS

プラットフォームヘッダーファイル「ppalmos.h」が機能しているため、上記のプリプロセッサディレクティブ「U_PALMOS」が機能していることがわかりました。

マクシー

于 2011-05-16T10:38:09.227 に答える
0

この問題はまだ修正されていません。誰かが助けてくれることを願って、より多くの情報を提供します。

  1. いくつかのデバッグによって、GB18030 conventerが利用できないため、GB18030がサポートされていないことがわかりました。

  2. '/android_root/source/external/icu4c/stubdata/readme.txt'で、Androidで利用可能なコンバーターを確認できます(GB18030コンバーターなし)。

    • cnv / *。cnvは、Androidに必要な追加のエンコーディングです。これらは
    • gsm-03.38-2000.cnv
    • iso-8859_16-2001.cnv
    • docomo-shift_jis-2007.cnv
    • kddi-jisx-208-2007.cnv
    • kddi-shift_jis-2007.cnv
    • ソフトバンク-jisx-208-2007.cnv
    • softbank-shift_jis-2007.cnv

これは主にビルド​​の問題ですが、AndroidでICU4Cをビルドする方法と、gb18030コンバーターを追加する方法を知っている人はいますか?

ICU4Cを構築しようとしていますが、まだ成功していません。

于 2011-03-09T09:59:45.787 に答える
0

私はこの質問を解決しました。実際、これはビルドの問題であり、ICU4Cが原因ではありません。makeファイルでは、PRODUCT_LOCALEを設定する必要があります。次に、ビルド後、CTSは合格できます。

于 2011-03-19T06:36:51.567 に答える