###質問内容
今回、apkが100MBを超えたのでSlipt Application Binaryを使うことにしました。
OBBのダウンロードがうまくいかなかった場合のために、GooglePlay OBB Downloaderを使うことにしたのですが…
下記の ”最初のシーン” が、Unity無料版で入るUnityのロゴが表示される画面になるなら、ダウンローダーを実行するシーンを最初にしても.apkではなく.obbに含まれてしまい、意味がないんじゃないか?という疑問を持ちまして、質問させて頂きました。
公式マニュアルより(https://docs.unity3d.com/jp/540/Manual/android-OBBsupport.html)
Split Application Binary オプションによりすべてのバイナリコード( Java、ネイティブ、プラグイン、その他)や Unity プロジェクトの最初のレベル/シーンを含むを含む .apk を作成します。 他のすべて(すべての追加シーン、リソース、ストリーミングアセット、その他)は .obb に含まれます。
アセットストアのプラグインを使用するとき、そのプラグインを 最初のシーンから呼ぶ必要 があります(前述で説明したとおり)。
###疑問を持った理由
今回、初めてSlipt Application Binaryを使ったのですが、こちらのサイト様(http://naochang.me/?p=488)のコードをそのままお借りして、自分のサイトロゴを表示する最初のシーン(MySplash)に実装してみました。
(1).obbのダウンロードに失敗した場合
ベーター版でストアにアップして、すぐに実機にインストールしてみたところ、どうやら.obbのダウンロードに失敗したようで、unityロゴの画面から進まなくなりました。
つまり、ダウンローダーを実行するMySplash画面まで到達しなかったのです。
(2).obbのダウンロードに成功した場合
そこで、時間をおいて再インストールしたところ、.obbファイルがダウンロードできたようで、MySplashに進んだ矢先、強制終了と共に謎のダウンロードが始まり、スマホのヘッダーにダウンロードのマークが出ているものの、終わる気配もなく、アプリを再起動しても同じところで強制終了を繰り返すだけになり、已む無くアンインストールをすると、ダウンロードのマークも消えました。
強制終了時のエラー内容は下記の通りです。
勉強不足でエラーの内容すら理解出来ていないのですが、もし.obbにダウンローダーを実行するコードが含まれたのであれば、自分で自分を呼ぶ?みたいになって無限ループで強制終了したのではないか?と疑問を持った次第です。
ちなみに、ダウンローダーを外して.obbがダウンロードできた場合は、問題なくアプリを起動することができましたので、今回はダウンローダーを入れないで公開しようかと考えています。
###エラー
java.lang.Error: FATAL EXCEPTION [main]
Unity version : 5.4.1f1
Device model : SHARP 402SH
Device fingerprint: SG/SG402SH/SG402SH:4.4.4/S0030/00.00.00:user/release-keys
Caused by: java.lang.IllegalArgumentException: java.security.spec.InvalidKeySpecException: java.lang.RuntimeException: error:0D07209B:asn1 encoding routines:ASN1_get_object:too long
at com.unity3d.plugin.downloader.c.j.a(Unknown Source)
at com.unity3d.plugin.downloader.c.j.<init>(Unknown Source)
at com.unity3d.plugin.downloader.b.s.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5232)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:805)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:621)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.security.spec.InvalidKeySpecException: java.lang.RuntimeException: error:0D07209B:asn1 encoding routines:ASN1_get_object:too long
at com.android.org.conscrypt.OpenSSLKey.getPublicKey(OpenSSLKey.java:101)
at com.android.org.conscrypt.OpenSSLRSAKeyFactory.engineGeneratePublic(OpenSSLRSAKeyFactory.java:47)
at java.security.KeyFactory.generatePublic(KeyFactory.java:171)
... 12 more
Caused by: java.lang.RuntimeException: error:0D07209B:asn1 encoding routines:ASN1_get_object:too long
at com.android.org.conscrypt.NativeCrypto.d2i_PUBKEY(Native Method)
at com.android.org.conscrypt.OpenSSLKey.getPublicKey(OpenSSLKey.java:99)
... 14 more
以上です。
長文になってしまいましたが、よろしくお願いいたします。
あなたの回答
tips
プレビュー