問題タブ [objective-sharpie]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
940 参照

xamarin - Xamarin iOS バインディング、ライブラリにシンボルが見つかりません

Xamarin.iOS プロジェクト用のスケッチ/ペイント コントロールが必要でした。C# と互換性のあるものを見つけることができなかったようですが、Objective C で記述された適切なコンポーネントを見つけました。https://github.com/acerbetti/ACEDrawingView

以前に Xamarin バインディングを行ったことがあるので、プロセスがかなり単純になることを期待していましたが、残念ながら途中でいくつかの障害にぶつかりました。

スタティック ライブラリの作成から始め、ant ビルド スクリプトを使用してデバイスとシミュレータをカバーする FAT バイナリを作成しました。

私のantスクリプトのスニペット

次に、走った

ヘッダー ファイルで、ApiDefinitions と Structs および Enum ファイルを取得します。

Verify属性を確認して削除しました。(それらはすべて問題ないように見えました。)しかし、これが私の他の問題のいくつかが始まったところです。

先に進んで何かを機能させるために、この参照をコメントアウトしました。

その後、次のような複数の問題が発生しました。

私はそれがこれに関連していると考えました:

この:

これを修正してインターフェイス名を統一しようとしました (IACEDrawingTool と ACEDrawingTool の両方を試しました)。

私の列挙型の1つが次のように出てきました

この場合、[Native] の処理方法が見つかりませんでした (もう一度、テストのために削除しました)。enum から nuint を削除し、uint を使用してみました。どちらのアプローチでもエラーが修正されたようです。

これらのエラーが修正されたので、バインディング プロジェクトから .dll を生成し、それをメイン プロジェクトに追加することができました。

今、私はさらに2つの問題を抱えています。

ビルドしてシミュレーターにデプロイすると、バインディングから ACEDrawingView の新しいインスタンスを作成しようとする時点までアプリを実行できます。私は得る:

ビルドして携帯電話にデプロイしようとすると、ビルド フェーズでさまざまなエラーが発生し、デバイスでまったく起動できなくなります。

...等々。

戻って、手順を読み直し、やり直して、以前の成功したバインドからいくつかのスクリプトと設定を再利用しようとしましたが、うまくいきませんでした。

これらの問題を解決するための提案はありますか?

0 投票する
1 に答える
706 参照

ios - バインド プロジェクトを使用してネイティブ ライブラリ libxml2 を xamarin.ios プロジェクトにリンクする

ライブラリ libxml2.tbd を使用する xcode コードがあります。この公式ガイドラインに従って、そのコードを Xamarin.ios 内で使用できるスタティック ライブラリ (myProjectLib.a) にする必要がありました。 iOS ライブラリのバインド

問題は、プロジェクトが libxml2 をリンクできないかのように、xamarin プロジェクトのビルド中に未定義のシンボルに関する多くのエラーが発生することです。

エラー MT5210: ネイティブ リンクに失敗しました。未定義のシンボル: _xmlTextWriterFlush。必要なすべてのフレームワークが参照され、ネイティブ ライブラリが適切にリンクされていることを確認してください。

私はこのバインディングを数回成功させましたが、依存関係ライブラリなしでのみでした。しかし、それをリンクするための解決策が必要です。

私がすでに試したこと:
-libxml2.dylib を xcode ライブラリ プロジェクトに追加する (xamarin で同じエラー)
-xcode ライブラリ プロジェクトの他のリンカー フラグに (-libxml2,-lxml2) を追加する (xamarin で同じエラー)
-libxml2 を追加する。 dylib ファイルを xamarin バインディング プロジェクトに、xamarin アプリ プロジェクト リソースを常にコピー オプション付き (xamarin で同じエラー)

最後に試した:
xamarin アプリ プロジェクトの (追加の mtouch 引数) に --gcc_flags="-stdlib=libxml2" を追加すると、名前が無効であるという別のエラーが発生しました

エラー MT5209: ネイティブ リンク エラー: clang: エラー: 引数 '-stdlib=libxml2' の無効なライブラリ名