質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Google Play

Google Playは、Google社が提供しているAndroid端末向けのデジタルコンテンツ配信サービスです。Google Play Store アプリから、世界中の個人または企業が開発したアプリをダウンロードできます。有料アプリの売り上げは、70%を開発者、30%は通信キャリア等への支払いにあてられます。開発者が登録する場合は、初回のみ25ドルの登録手数料が必要です。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

Q&A

0回答

1565閲覧

Xamarin.GooglePlayServicesライブラリの挙動について

07JP27

総合スコア191

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Google Play

Google Playは、Google社が提供しているAndroid端末向けのデジタルコンテンツ配信サービスです。Google Play Store アプリから、世界中の個人または企業が開発したアプリをダウンロードできます。有料アプリの売り上げは、70%を開発者、30%は通信キャリア等への支払いにあてられます。開発者が登録する場合は、初回のみ25ドルの登録手数料が必要です。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

0グッド

0クリップ

投稿2018/04/15 01:32

前提・実現したいこと

Xamarin.FormsでiOS,Androidアプリを制作しています。
そのアプリ内でLottieというライブラリを使用し、スプラッシュスクリーンにアニメーションを表示させています。
アプリに新しい機能を追加しようとしてXmarin.Forms.GoogleMapをインストールしました。
(インストールのみ行い、自前の処理は何も記述していない状態)

発生している問題・エラーメッセージ

iOSプロジェクトを実行すると正常にライブラリインストール前と同様の挙動をします。
しかし、Androidプロジェクトを実行するとスプラッシュスクリーンのアニメーションが再生されずに、アニメーションが終わる時間経過してもスプラッシュスクリーンが消えません。(初期表示画面に遷移しない状態)

該当のソースコード

基本的にこのサイトに従い記述しました。

C#

1using Android.Animation; 2using Android.App; 3using Android.Content; 4using Android.OS; 5using Com.Airbnb.Lottie; 6 7namespace hogehoge.Droid 8{ 9 [Activity(Theme = "@style/Theme.Splash", 10 MainLauncher = true, 11 NoHistory = true)] 12 public class SplashActivity : Activity, Animator.IAnimatorListener 13 { 14 protected override void OnCreate(Bundle savedInstanceState) 15 { 16 base.OnCreate(savedInstanceState); 17 SetContentView(Resource.Layout.Activity_Splash); 18 19 var animationView = FindViewById<LottieAnimationView>(Resource.Id.animation_view); 20 animationView.AddAnimatorListener(this); 21 } 22 23 public void OnAnimationCancel(Animator animation) 24 { 25 } 26 27 public void OnAnimationEnd(Animator animation) 28 { 29 StartActivity(new Intent(Application.Context, typeof(MainActivity))); 30 } 31 32 public void OnAnimationRepeat(Animator animation) 33 { 34 } 35 36 public void OnAnimationStart(Animator animation) 37 { 38 } 39 } 40}

xml

1<?xml version="1.0" encoding="utf-8"?> 2<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:app="http://schemas.android.com/apk/res-auto" 4 android:layout_width="match_parent" 5 android:layout_height="match_parent"> 6 <com.airbnb.lottie.LottieAnimationView 7 android:id="@+id/animation_view" 8 android:layout_width="wrap_content" 9 android:layout_height="wrap_content" 10 app:lottie_fileName="splash.json" 11 app:lottie_autoPlay="true" 12 android:layout_centerVertical="true" 13 android:layout_centerHorizontal="true" /> 14</RelativeLayout>

試したこと

  • SplashActivityの各所にブレイクポイントを設定

OnCreateメソッドの最後までは終了していますが、OnAnimationEndメソッドは実行されません。

  • Xamarin.Forms.GoogleMapを削除

不具合は解消されませんでした。

  • Xamarin.Forms.GoogleMapインストールと同時にインストールされたライブラリを削除

Xamarin.GooglePlayServices.Base

Xamarin.GooglePlayServices.Basement
Xamarin.GooglePlayServices.Maps
Xamarin.GooglePlayServices.Tasks
Xamarin.Build.Download
を削除したところ正常な状態に戻りました。(本現象が発生する前の状態)

  • SplashActivityのMainLauncher = trueをfalseにし、MainActivityの同箇所をTureに変更

スプラッシュスクリーンが表示されずに正常に初期表示画面が表示されました。

上の現象からLottieのAutoPlayがTrueになっているのにもかかわらず、アニメーションがスタートせずに、結果としてOnAnimationEndメソッドが実行されずに初期画面が表示されないように見えます。

問題はLottieとXamarin.GooglePlayServicesに起因して発生しているものと考えておりますが、
修正すべき箇所がわかりません。ご助言いただけますと幸いです。

補足情報(FW/ツールのバージョンなど)

  • Xmarin.Forms2.5.0.121934
  • Com.Airbnb.Android.Lottie2.2.5.0
  • Com.Airbnb.Xamarin.Forms.Lottie2.3.4
  • Xamarin.Forms.GoogleMaps2.3.0
  • Xamarin.GooglePlayServices.Base42.1021.1
  • Xamarin.GooglePlayServices.Basement42.1021.1
  • Xamarin.GooglePlayServices.Maps42.1021.1
  • Xamarin.GooglePlayServices.Task42.1021.1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

amay077

2018/04/17 05:59

Xamarin.Forms.GoogleMaps(以降 XF.GMap と略) の作者です。XF.GMap を入れずに「Xamarin.Forms.GoogleMapインストールと同時にインストールされたライブラリ」をひとつずつ入れてみて、どこで問題が発生するのかを確認されてはどうでしょうか? XF.GMap を使用した際の問題であれば私の方で直すこともできると思いますが、書かれている現象を見る限りそうでもなさそうですので。
07JP27

2018/04/17 06:31

ありがとうございます。試してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問