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

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

ただいまの
回答率

90.36%

  • Android

    6706questions

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

  • Unity

    4376questions

    Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

Unity無料版ではGooglePlay OBB Downloaderを使う意味がないのでしょうか?

受付中

回答 0

投稿

  • 評価
  • クリップ 0
  • VIEW 885

nico29

score 65

質問内容

今回、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

以上です。
長文になってしまいましたが、よろしくお願いいたします。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

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

同じタグがついた質問を見る

  • Android

    6706questions

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

  • Unity

    4376questions

    Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。