1

Android 用の Cocos2d-js 'Hello World' プロジェクトをコンパイルし、Genymotion (x86 上の Android エミュレーター) で実行しようとしました。

私はすでに追加しようとしました:

APP_ABI := armeabi armeabi-v7a x86

これによりApplication.mk、apk が 3 倍大きくなりますが、Genymotion でアプリを実行すると、すぐに「HelloWorld が停止しました」と表示されます。

同じ apk が実際の Android デバイスで正常に動作します。

何か案は ?

更新: サンプル JS-MoonWarriors は Genymotion (ARM 変換がインストールされている) で正常に動作するため、x86 とは関係ないと思います。ただし、サンプルの JS-Tests は機能しませ(同じエラー '... has stopped')。

4

2 に答える 2

1

私もそれを解決しました...そしてそれを機能させるためにあなたがしなければならないことが2つあります:

最初に Cocos2dxActivity.java という名前のファイルで cocos ゲーム プロジェクトを検索し、それをメモ帳で開き、ファイルの一番下までスクロールすると、次のような行を含む静的関数が見つかるはずです。

 isEmulator = product.equals("sdk") || product.contains("_sdk") || product.contains("sdk_");

これを次のように変更する必要があります。

 isEmulator = product.equals("sdk") || product.contains("_sdk") || product.contains("sdk_") || product.contains("vbox");

次に、cocos ゲーム プロジェクトを再度検索して Application.mk という別のファイルを探し、通常どおりメモ帳で次の 2 行の下で開きます。

# Uncomment this line to compile to armeabi-v7a, your application will run faster but support less devices
#APP_ABI := armeabi-v7a

それらのすぐ下に別の行を追加します。

APP_ABI := armeabi x86 

考慮すべきもう1つのことは、追加したばかりの行は、私が書いたとおりである必要があり、これを試してみれば:

APP_ABI := Armeabi x86 (Wrong ... it wont work just because of the capital A)

ちなみに、私はCocosコードIDE 1.2を使用して、apkファイルをフレームワークv3.7とandroid-ndk-r10cでパッケージ化し、SDKをadt-bundle-windows-x86_64-20140702としてパッケージ化しています

もう1つ...これを機能させるには、Gappsを使用してエミュレーターにGenymotion-ARM-Translationをインストールする必要があります。

PS: ファイルが見つからない場合は、プロジェクトを再作成し、チェックインしたプロジェクトにネイティブ コードを追加する必要があります。

于 2015-09-02T16:49:24.433 に答える