1. ホーム
  2. アンドロイド

Unity3Dのandroidプロジェクトがエラーで起動する:あなたのハードウェアはこのアプリケーションをサポートしていません。

2022-03-16 17:02:08

ディレクトリ

1. この問題の理由

2. 解決方法

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ユーザーは他のブログを探してください、ありがとうございます