3

私はLinux + Eclipseに取り組んでいます。

wikiが提供する手順に従ってコードを更新しました。

1º 新しい Eclipse プロジェクトを作成します。2º 私は hello world を実行しましたが、動作します。3º クラスとリソースに古いコードを配置しました。4º appdelegate.cpp .h と jni/Android.mk を新しいファイルで更新します。5º 正しくコンパイルされます。

6º日食から起動すると、次の例外が発生します。

lib /data/data/org.pipero.game/lib/libgame.so を読み込もうとしています
致命的な信号 11.

何かがおかしいのですが、何が起こっているのかわかりません。

同じコードが xcode プロジェクトで機能します。
CCLOG メッセージ con Appdelegate コンストラクターを取得しません。Java_org_cocos2dx_lib_Cocos2dxRenderer_nativeInit の main.cpp も取得しません。

ログキャット:

---- ログ テスト実行中の HELLO WORLD ------
06-13 18:29:07.189: D/dalvikvm(11613): ライブラリを読み込もうとしています /data/data/pipero.corporation.nyan/lib/libgame.so 0x40f87190
06-13 18:29:07.199: D/dalvikvm(11613): 共有ライブラリ /data/data/pipero.corporation.nyan/lib/libgame.so 0x40f87190 を追加
06-13 18:29:07.269: w/apk パス (11613): /data/app/pipero.corporation.nyan-2.apk
06-13 18:29:07.409: D/SurfaceView(11613): pckname = pipero.corporation.nyan
06-13 18:29:07.809: D/libEGL(11613): ロード済み /system/lib/egl/libGLES_android.so
06-13 18:29:07.859: D/libEGL(11613): ロード済み /system/lib/egl/libEGL_mali.so
06-13 18:29:07.919: D/libEGL(11613): ロード済み /system/lib/egl/libGLESv1_CM_mali.so
06-13 18:29:07.929: D/libEGL(11613): ロードされた /system/lib/egl/libGLESv2_mali.so
-  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - わかった  -  -  -  -  -  - -------------------

---- LOG TEST RUNNING TEST Androidファイルを私のものに変更する ------
06-13 18:36:31.789: D/dalvikvm(12046): ライブラリをロードしようとしています /data/data/pipero.corporation.nyan/lib/libgame.so 0x40f8de18
06-13 18:36:31.799: A/libc(12046): 0x00000030 の致命的なシグナル 11 (SIGSEGV) (コード = 1)
-  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - 不合格  -  -  -  -  - ----------------

別のタブレット(Android 3.2)でコンパイルしようとしましたが、同じ問題が発生しました。今回のログは次のとおりです。

06-12 15:16:16.610: I/DEBUG: * * 06-12 15:16:16.610: I/DEBUG: ビルド フィンガープリント: 'asus/WW_epad/TF101:3.2.1/HTK75/WW_epad-8.6.5.13- 20110925: ユーザー/リリース キー ' 06-12 15:16:16.610: I/DEBUG: pid: 1183、tid: 1183 >>> pipero.corp.test

したがって、シグナル 11 SEGV_MAPERR は、コンパイルの問題であると考えられます。ライブラリは見つかりますが、プログラムはそれを正しくロードできません。JNI は jni_Onload を実行しません。

いくつかのアイデア???

前もって感謝します。

4

2 に答える 2

3

プロジェクト フォルダー内で、lib ファイルが実際に Android libs フォルダー内にあることを再確認します。

[cocos2d-x ルート]/[ゲーム名]/android/libs

その中に libgame.so というファイルが 1 つあるはずです。

コンパイルに問題がなければ、.so ファイルが生成されます。コンパイルするときに、Eclipse でプロジェクトを「更新」すると、Eclipse が新しいファイル/変更のディレクトリを再スキャンして、デプロイ用の APK ファイルにパックするのに役立ちます。

ファイルシステムの変更を自動的に検出するためにEclipseで有効にできるオプションがあると思いますが、そのオプションがどこにあるのかわかりません。

于 2012-06-11T20:09:01.923 に答える
3

致命的なシグナル 11 を受け取っているので、これを見てみたいと思うかもしれません。これは、通常はプログラミングのバグが原因で、割り当てられていないメモリ位置にアクセスするセグメンテーション違反です。

幸運を祈りますが、新しいバージョンで問題がない人もいるので、最も可能性の高いケースは、古いバージョンでは問題を引き起こさなかったプログラミングのバグがあるということです。

于 2012-06-19T20:25:23.600 に答える