LoginSignup
20
6

More than 5 years have passed since last update.

Xamarinでよくハマる事と対処方法

Last updated at Posted at 2018-12-02

Xamarinでよくハマる事と対処方法

本記事は、Xamarin Advent Calendar 2018 の3日目となります。

明日は @hypermild さんです。よろしくお願いします!

はじめに

Xamarinで(個人的に)よくハマる事と対処法をまとめてみました。

環境

  • Windows
    • Windows 10 Pro
    • Visual Studio 2017 Community (Ver15.9.3)
  • macOS
    • MacBook Air (Early 2014)
    • macOS High Sierra (Ver10.13.6)
    • Visual Studio for Mac Community (Ver7.7)
  • Android端末(実機)
    • Nexus 5X (Android Ver8.1.0)
  • iOS端末(実機)
    • iPhone 7 (iOS Ver12.1)

よくハマること

Androidのビルドが失敗する

Windowsの場合は、フォルダパスが長すぎると失敗します。

そのため、プロジェクトフォルダをCドライブ直下などに移動させましょう。

いつもなら直ぐ終わるビルドが10分以上待っても終わらない

まずはビルドログが表示されているか、確認しましょう。

上記のようにビルドログが表示されていない場合は、ビルド開始時に失敗している可能性が高いです。

この場合は、ビルドメニューのキャンセルを選択してビルドを中止します。

数秒~十数秒ほど待つとビルドが中止されるので、再度ビルドを行えばOKです。

Androidで配置エラーが発生する

よく見るこいつです。

APKファイルをAndroid端末にインストール失敗すると発生するようです。

原因としては下記が考えられます。

  • 転送すべきAPKファイルがそもそもない
  • APKファイルはあるけどインストールに失敗する

転送すべきAPKファイルがそもそもない

ビルドが失敗し、APKファイルが作成されていない可能性があります。

Hogehoge.Android\bin\Debugフォルダの中にfugafuga.apkファイルがあるかを確認してみましょう。

もし存在しないのであれば、リビルドしてAPKファイルを作成しましょう。

APKファイルが作成されない場合は、ビルドに失敗している可能性があります。ソースコード等を見直しましょう。(構成マネージャーも見たほうが良いかもしれません)

APKファイルはあるけどインストールに失敗する

インストールできないAPKファイルが作成されていると考えられます。

コマンドで直接インストールしてみましょう。

$ cd Hogehoge.Android\bin\Debug
$ adb install -r fugafuga.apk

おそらく失敗すると思います。表示されるエラーメッセージで検索して原因を調査しましょう。

ありがちなのは下記だと思います。

  • 作成したアプリのversionCodeが小さい
  • インストール済みAPKと署名が異なる
    • たとえば、デバッグ用とリリース用で署名が異なる
  • サポートしていないアーキテクチャ
    • たとえば、armeabi-v7aのみでビルドしたAPKだが、Androidエミュレータ(x86_64)にインストールしようとしている
    • 昔これで2時間ぐらいハマりました……

謎のビルドエラーが発生する

この現象は、いくつかパターンがあります。

例えば、下記のようなビルドエラーが発生します。

  • MSB4018: "LinkAssemblies" タスクが予期せずに失敗しました。

ほかにも

  • AggregateException: 1つ以上のエラーが発生しました。

とかです。よく分かりませんね。私も分かりません。

こういう場合は、

  • リビルド(クリーンしてからビルド)
  • Visual Studioを再起動

でだいたい直ります。

それでも直らない場合は、

  • objフォルダやbinフォルダを削除
    • git管理下なら、git clean -dfxが手っ取り早いかもしれません
  • PCを再起動

してみましょう。

それでも直らない場合は、頑張ってください……。

iOS端末(実機)を正しく認識しない(有線)

今のところVisual Studioで見たことはないですが、XcodeとiOS端末を有線接続した際に見たことがあるので、紹介しておきます。

Xcode上ではiOS端末を認識しています(端末名は表示される)が、デプロイに失敗します。(いつまで経ってもデプロイできない)

この場合は、iOS端末を再起動すると直ることが多いです。

それでも直らない場合は、アクティビティモニタからiTunes Helperを強制終了させ、MacとiOS端末を再接続すると直りました。(私の場合)

まとめ

上記内容以外にも不可解な現象に遭遇するかもしれませんが、クリーンビルドや再起動で直る事が多いです。

  • リビルド(クリーンしてからビルド)
  • Visual Studioを再起動
  • objフォルダやbinフォルダを削除
  • PCを再起動
  • 端末を再起動
20
6
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
6