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

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

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

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

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

2回答

517閲覧

Android64bit対応したら一部端末でアプリが正常に動作しなくなった

hiyarihatto

総合スコア14

Android

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

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2019/07/14 08:03

編集2019/07/14 09:41

前提・試したこと

Android 64bit対応をするため、下記手順を見て64bit版のapkを作成しました。

Android の 64bit 対応のapkファイルの作成方法
http://nakamura001.hatenablog.com/entry/20180717/1531822914

すでにリリースしているアプリのため、
GooglePlay Consoleで64bit版をアップデートでリリースしたのですが、
アップデートしてから、一部のAndroid端末で正常に動作(ゲームが進行しなくなるバグあり)しなくなりました。

出力したapkを下記手順で確認したところ、64bit対応は問題なくできているようです。
↓コマンドプロンプトのスクリーンショット
https://gyazo.com/cca8d88603d89fc7575efb5a45aed22d

確認方法
念の為、ちゃんと 64bit 対応になっているか確認する事にしましょう。
確認には aapt を使うのでまだパスを通して無い人はパスの設定方法を調べて、事前にパスを通しておいて下さい。

コマンドとしてはこの様になります。
native-code: 'arm64-v8a' 'armeabi-v7a' 'x86'

動作する端末

Nexus5
Androidバージョン5.0.1
32bit端末
では動作する

動作がおかしい端末(端末が分かるもの)

Huawai P20Lite
Androidバージョン9.0
64bit端末
では動作しない

質問

Androidの64bit対応をすることにより、これまで正常に動作していたアプリが、
進行しなくなるなどの現象は発生するとしたら、どんな原因が考えられますでしょうか?

64bit対応により、動作する端末・動作がおかしい端末の違いは、何が原因かご存知の方がいましたら、
教えていただけますと大変助かりますm(_ _)m

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

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

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

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

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

guest

回答2

0

SQLiteのAndroid64bit対応に苦労した話
http://blog.livedoor.jp/nyangostar/archives/79801661.html

上記ブログ通りに行い、解決しました!

投稿2019/07/16 08:10

hiyarihatto

総合スコア14

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

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

0

ベストアンサー

使っているアセットやライブラリが全て「arm64-v8a」に対応しているか確認してみてください。

投稿2019/07/14 08:12

fiveHundred

総合スコア9803

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

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

hiyarihatto

2019/07/14 09:58

ご回答ありがとうございます! 動作する端末=32bitの端末、動作がおかしい端末=64bitの端末 ということが判明しました。 アセットやライブラリが「arm64-v8a」に対応しているかは、 どうやったら確認できるのかご存知でしょうか? アセットストアの拝見しても、Unityのバージョンしか記載がなく、「arm64-v8a」に対応有無が分かりません。 64bitで動作いない箇所をキャプチャ動画で見ると、SQLiteの読み込み回りが正常に動作していないと思われます(64bitの端末が手元になく、検証できていないので想像ですが)
fiveHundred

2019/07/14 10:16

多くの場合、アセットの「Plugins/Android」ディレクトリに「armeabi-v7a」や「x86」といった名前のディレクトリがあると思いますが、その中に「arm64-v8a」が無ければ対応していない可能性が高いです。 このディレクトリが無い場合でも、「lib~.so」という名前のファイルがある場合は、それを選択したときにインスペクターに表示される内容で、どのCPUにチェックが入っているか確認してみてください。 (チェックを入れることも出来ますが、「lib~.so」はCPUごとに異なるため、入れても大体の場合は上手くいかないでしょう)
hiyarihatto

2019/07/14 13:31

詳しく教えて頂き、ありがとうございます! SQLite周りが怪しいと思い、 Plugins/Android/libsqlite3.so のインスペクターをみたところ、「Platform」が「ARMv7」にチェックされたファイルしか見つからなかったので、「arm64-v8a」に対応した「libsqlite3.so」ファイルが必要そうですね。 ↓libsqlite3.soのインスペクター https://gyazo.com/cfe1af3a0bb61d5754741b485a8dc923
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問