Xamarin.android官網文檔
本文以騰訊QQ登錄為例
首先,咱們來講講Android中Java庫的分類,一般Android的庫分為jar,aar,so這三種,jar一般包含一些java的可執行文件(.class),aar包含jar,還有有一些Android中會用到的資源文件(layout,drawable,xml等),so是指由c/c++編寫編譯生成的動態庫。
接下來,開始綁定:
- 1.創建新的工程(->New Project);
- 2.創建新的Android綁定工程(File->New Solution->Android->Library->Binding Library);
- 3.將下載解壓后的open_sdk_r6140_lite.jar(Android_SDK_V3.3.5, 2019-8-6)復制到第二步創建的綁定項目中的Jar文件夾下,然后將jar包添加到項目中;
- 4.右擊open_sdk_r6140_lite.jar(Build Action->EmbeddedJar)
- 5.編譯你的綁定項目.(如果編譯成功,那么恭喜你,你通過了第一步,因為引用的時候還會遇到各種奇怪的問題;如果沒成功,別著急,接著往下看).
錯誤:
- error CS0102: The type 'CompleteEventArgs' already contains a definition for 'p0'
解決辦法: 在Metadata.xml中的<metadata>節點中添加
<attr path="/api/package[@name='com.tencent.tauth']/interface[@name='IUiListener']/method[@name='onComplete']" name="argsType">UICompleteEventArgs</attr>
步驟:
雙擊Error中的描述(下圖中左側標紅位置),然后就回跳轉到出錯代碼位置(java轉成的c#代碼)
error.png
具體出錯位置.png
找到java接口綁定之后的c#代碼(復制搜索onComplete),然后找到如下圖所示:
綁定后的接口;png
- 復制xpath的路徑,在Metadata.xml中的<metadata>節點中添加
<attr path="/api/package[@name='com.tencent.tauth']/interface[@name='IUiListener']/method[@name='onComplete']" name="argsType">UICompleteEventArgs</attr>
- 重新編譯。
IDE:Visiual Studio for Mac 8.3.1
附: