2017-08-02 13 views
1

ドキュメントにはサポートが必要です。 それはそのがgen.goファイルで実装されていないようです:UINT64をサポートするために、私は をサポートするために、モバイル行くパッチを適用する必要があることを読んGomobileバインド:サポートされていない基本タイプ:uint64

case types.Uint8: // types.Byte 
     return "uint8_t" 
    // TODO(crawshaw): case types.Uint, types.Uint16, types.Uint32, types.Uint64: 

しかし、ファイルを変更した後、(行く/ SRC/golang.org /x/mobile/bind/gen.go) 携帯電話を再起動する:gomobile init

同じエラーが表示されますが、ここで何か分かりにくいですか?

+0

Go Mobileにパッチを当てる必要はありますか?あなたはどの手順に従ったのですか? _full_情報を含めてください。 – Flimzy

答えて

0

ここでの問題は、Javaには署名がないことだと思います。したがって、Javaへのインタフェースでは、グローバル変数、関数の戻り値、または関数パラメータのいずれかとしてuint64(およびuint32 IIRC)ファイル型を使用することはできません。

Goモバイルでuint64を使用できます。上記に基づいて

2種類の溶液:

  1. リミット最小
  2. コンバートuint64型へのJavaへの不正なタイプの露出が移動中にInt64型とJavaでのBigIntegerに長いから変換します。
0

私はこれを非常にStackOverflowの投稿に触発されたGoモバイルにパッチして解決しました!私は "パッチ"を非常にゆるやかに使用していますが、誰もこのコードを非常に目的に応じて使用するよう勧めていません。

私は単にuint64を返すようにdefaultケースを短絡 - あなたは私がここにまったく同じものを見ることができます。https://github.com/Sidetalker/mobile/commit/01eb11be69a781e71c7f00df6fc17b35f828f7a2

私はあなたが得るために、そのブランチ上で見ることができ、他の検索/置換変化の一握りを作るために必要なそれは適切に構築されており、私は確かにGoモバイルのバグbyteタイプを修正する必要がありました。これはすべて支店で見ることができます。

また、批判的に、私は完全にgo getこのプロジェクト - 自分の変更を行い、実行してgomobile initで十分ではありませんでした。

このコードは使用しないでください。これに答えてください。

+0

ねえ、私は最終的にこれにパッチを当てました、私はgen.goファイルを変更しました。私は "install install ..."で再コンパイルしなければなりませんでした。 – nicwhitts

関連する問題