Go からの Apex 設定におけるネイティブ ライブラリの読み込みの問題
この質問の目的は、Go 実装がライブラリを動的に追加する理由を解決することです。 Apex 設定のnative_shared_libs 配列に追加しても、コンパイルされた .so ファイルは生成されません。
書き込まれた Go ファイルは、Android 設定の DeviceName をチェックする条件ステートメントを定義します。デバイス名が指定された条件と一致する場合、libabcxtractor という名前のライブラリが、native_shared_libs 配列に追加されます。これは、ビルド時に Apex 設定にライブラリを追加することを目的としています。
ただし、Go 実装の見落としにより問題が発生します。 Go のリフレクションでは、エクスポートされた構造体フィールド (大文字で始まるフィールド) へのアクセスのみが許可されます。提供された Go ファイルでは、最初の構造体のフィールド名 native_shared_libs が小文字で定義されています。
その結果、ビルド プロセスがリフレクションを使用して props 構造体にアクセスすると、native_shared_libs フィールドを見つけることができません。これにより、ビルドシステムが追加されたライブラリを Apex 設定に組み込むことができなくなります。
この問題を解決するには、フィールド名 native_shared_libs を Native_shared_libs に変更して、大文字で始まるようにする必要があります。これにより、リフレクションを通じてアクセスできるエクスポートされたフィールドになります。
Go ファイルでこの変更を行った後、ビルド プロセスは Native_shared_libs フィールドに正常にアクセスし、libabcxtractor を配列に追加して、ライブラリを追加できるようになります。 Apex 構成に変更します。その後、libabcxtractor のコンパイル済み .so ファイルがビルド出力ディレクトリに生成されるはずです。
以上がGo 実装が Apex 設定の「native_shared_libs」配列にライブラリを追加できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。