Unity3Dのandroidプロジェクトがエラーで起動する:あなたのハードウェアはこのアプリケーションをサポートしていません。
ディレクトリ
2.1. 以下の2つのように、unityエクスポートしたプロジェクトでsoがどのプラットフォームをサポートしているかを確認します。
2.2. アクセスしたysdkのaarファイルに含まれるplatform sosを調べ、以下を確認する。
2.3. プロジェクトのgrandleファイルを確認し、以下のようにunityのsoファイルとysdkのsoファイルが導入されているかどうかを判断します。
最近、サードパーティのSDKにアクセスせずに、unityでエクスポートしたソースプロジェクトが、携帯電話のすべてのプラットフォームで正常に動作するという問題に遭遇しました。
しかし、サードパーティのSDKに接続した途端、あるプラットフォームでは正常に動作し、他のプラットフォームでは「お使いのハードウェアはこのアプリケーションをサポートしていません」と表示されるのです。
以下はTencentのysdkの例です(これは単なる使用例で、他には何もありません、憶測は禁物です)。ブログ主は無脳でTencentのysdkが提供するaarファイルにアクセスし、一部の機種では質問にあるようなエラー問題でゲームがポップアップされました。
具体的なスクリーンショットは以下の通りです。
1. この問題の理由
携帯電話で最終的に動作するプログラムは、計算を実行するcpuであり、携帯電話メーカーごとに異なる機種やメーカー製のcpuが使用されています。
しかし、これらの異なるCPUは、それぞれコンピューティングに関して、x86またはx86_64という独自の仕様を持っています。
なお、x86_64はx86のアップグレード版で、x86_64の携帯電話はx86_64の対応機種が見つからないとx86のリソースに戻りますが、アルメアビも似たようなものです。
しかし、この問題の最終的な原因は、x86ファミリーのチップがx86の仕様と関連するソのリソースに適応していることにあるのです。
携帯電話のCPUがsss仕様に準拠していても、アプリケーションがx86仕様しか提供しない場合、次のようになります。
原因がわかれば、解決は簡単です。
ちょうどので、携帯電話のCPUが必要とするリソースを提供しますが、ビジネスがある場合は、そうのすべてのビジネスニーズを提供する仕様のセットは、エラーが発生することに注意してください不足している
2. 解決方法
このような問題に遭遇した場合、必然的にjniのsoファイルが原因となってエラーが発生します。そこで、解決策もsoファイルに対するもので、次のようになります。
2.1. 以下の2つのように、unityでエクスポートしたプロジェクトのsoファイルが、どのプラットフォームに対応しているかを確認します。
x86
アルメアビ_v7a
2.2. アクセスしたysdkのaarファイル内に含まれるようにプラットフォームを排出し、以下を発見した。
x86
x86_64
アルメアビ_v7a
アルメアビ
ミップス
Unity のエクスポートよりもさらに多くのプラットフォームサポートがあることは明らかで、必要なのは aar アーカイブ内の余分なフォルダーを直接削除することだけです。
上記のプロジェクトにx86とarmeabi_v7aが含まれている場合、サードパーティから以下を削除する必要があります。
x86_64
アルメアビ
ミップス
2.3. プロジェクトのgrandleファイルを確認し、以下のようにunity soファイルとysdk soファイルが導入されているかどうかを確認します。
sourceSets { main { jniLibs.srcDirs = ['src/XXXX/libs'] // where src/XXXX/libs is the path to the exported so file } }//*/ repositories{ flatDir{ dirs 'src' } } dependencies { //ysdk build jars ysdkCompile(name:'ysdk/aar/YSDK_Android_1.3.1_670',ext:'aar') }
上記3点のトラブルシューティングを行った後、再度プロジェクトをコンパイル・デバッグしたところ、すべてのプラットフォームで問題なく動作することが確認できました。
注:上記の3つのステップを実行しても問題がある場合は、以下のコメントを残すか、直接私に質問してください、このブログはASユーザーのみです Eclipseユーザーは他のブログを探してください、ありがとうございます
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例