마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

이클립스 OS error

0 추천

안녕하세요.

이클립스 초보 개발자 입니다.

다름이 아니라, 얼마전 까지는 잘 돌아가던 프로젝트가

갑자기.. 디바이스에 넣으면 실행하는 순간 크러쉬가 생겨버리는 문제가 생겼습니다.

ndk도 바꿔보고 클린도 해보고 재부팅도 해보았지만, 해결이 되지 않습니다.

빌드는 잘 되는데 실행하면 바로 죽습니다..

원인도 잘 모르겠고요..

원인을 아시거나 해결법을 아시는분!

답변 하나하나 정말 감사히 듣겠습니다.

아래는 빌드 후, 출력되는 글입니다.

 

12:48:08 **** Build of configuration Release for project SuperBattle ****
python D:/KimWork/Client/cocos2d-x-3.3/Project/SuperBattle/proj.android/build_native.py -b release all
We will remove this script next version,you should use cocos console to build android project.

The Selected NDK toolchain version was 4.8 !
Traceback (most recent call last):
  File "D:/KimWork/Client/cocos2d-x-3.3/Project/SuperBattle/proj.android/build_native.py", line 196, in <module>
    build(opts.ndk_build_param,opts.android_platform,opts.build_mode)
  File "D:/KimWork/Client/cocos2d-x-3.3/Project/SuperBattle/proj.android/build_native.py", line 166, in build
    copy_resources(app_android_root,build_mode)
  File "D:/KimWork/Client/cocos2d-x-3.3/Project/SuperBattle/proj.android/build_native.py", line 137, in copy_resources
    os.mkdir(assets_dir)
OSError: [Errno 2] No such file or directory: '/cygdrive/d/KimWork/Client/cocos2d-x-3.3/Project/SuperBattle/proj.android/D:/KimWork/Client/cocos2d-x-3.3/Project/SuperBattle/proj.android/assets'

12:48:09 Build Finished (took 1s.97ms)

아래는 죽은뒤 로그캣을 복사한 부분입니다.

ㅠㅠㅠㅠㅠ

10-28 12:54:31.287: D/dalvikvm(7805): Late-enabling CheckJNI
10-28 12:54:31.417: D/ActivityThread(7805): setTargetHeapUtilization:0.25
10-28 12:54:31.427: D/ActivityThread(7805): setTargetHeapConcurrentStart:2097152
10-28 12:54:31.427: D/HyLog(7805): I : /data/font/config/dfactpre.dat, No such file or directory (2)
10-28 12:54:31.447: D/dalvikvm(7805): Trying to load lib /data/app-lib/kr.co.softmax.chaosbattlehero-1/libcocos2dcpp.so 0x428a65b0

10-28 12:54:31.447: E/dalvikvm(7805): dlopen("/data/app-lib/kr.co.softmax.chaosbattlehero-1/libcocos2dcpp.so") failed: dlopen failed: cannot locate symbol "rand" referenced by "libcocos2dcpp.so"...
10-28 12:54:31.447: W/dalvikvm(7805): Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Lorg/cocos2dx/cpp/GameApp;
10-28 12:54:31.447: W/dalvikvm(7805): Class init failed in newInstance call (Lorg/cocos2dx/cpp/GameApp;)

10-28 12:54:31.447: D/AndroidRuntime(7805): Shutting down VM
10-28 12:54:31.447: W/dalvikvm(7805): threadid=1: thread exiting with uncaught exception (group=0x41840e48)
10-28 12:54:31.447: E/AndroidRuntime(7805): FATAL EXCEPTION: main
10-28 12:54:31.447: E/AndroidRuntime(7805): Process: kr.co.softmax.chaosbattlehero, PID: 7805
10-28 12:54:31.447: E/AndroidRuntime(7805): java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "rand" referenced by "libcocos2dcpp.so"...
10-28 12:54:31.447: E/AndroidRuntime(7805):  at java.lang.Runtime.loadLibrary(Runtime.java:364)
10-28 12:54:31.447: E/AndroidRuntime(7805):  at java.lang.System.loadLibrary(System.java:526)
10-28 12:54:31.447: E/AndroidRuntime(7805):  at org.cocos2dx.cpp.GameApp.<clinit>(GameApp.java:306)
10-28 12:54:31.447: E/AndroidRuntime(7805):  at java.lang.Class.newInstanceImpl(Native Method)
10-28 12:54:31.447: E/AndroidRuntime(7805):  at java.lang.Class.newInstance(Class.java:1208)
10-28 12:54:31.447: E/AndroidRuntime(7805):  at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
10-28 12:54:31.447: E/AndroidRuntime(7805):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2119)
10-28 12:54:31.447: E/AndroidRuntime(7805):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2252)
10-28 12:54:31.447: E/AndroidRuntime(7805):  at android.app.ActivityThread.access$800(ActivityThread.java:139)
10-28 12:54:31.447: E/AndroidRuntime(7805):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1200)
10-28 12:54:31.447: E/AndroidRuntime(7805):  at android.os.Handler.dispatchMessage(Handler.java:102)
10-28 12:54:31.447: E/AndroidRuntime(7805):  at android.os.Looper.loop(Looper.java:136)
10-28 12:54:31.447: E/AndroidRuntime(7805):  at android.app.ActivityThread.main(ActivityThread.java:5103)
10-28 12:54:31.447: E/AndroidRuntime(7805):  at java.lang.reflect.Method.invokeNative(Native Method)
10-28 12:54:31.447: E/AndroidRuntime(7805):  at java.lang.reflect.Method.invoke(Method.java:515)
10-28 12:54:31.447: E/AndroidRuntime(7805):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
10-28 12:54:31.447: E/AndroidRuntime(7805):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:606)
10-28 12:54:31.447: E/AndroidRuntime(7805):  at dalvik.system.NativeStart.main(Native Method)

 

 

소중한 답변 기다리겠습니다.

감사합니다.

 

익명사용자 님이 2015년 10월 28일 질문

1개의 답변

0 추천

무슨 이유에서인지는 모르겠지만 "rand" function을 찾지 못해서 so를 로드 못 했다고 나오네요..

rand의 경우 libc.so에 기본적으로 들어있는 함수라 오류가 나지 않아야 정상일텐데..  어떤 단말로 빌드하신건가요?

단말의 /system/lib 들어있는 libc.so에 rand 심볼이 있는지 부터 확인 해 보시고 없으면 rand 함수를 직접 만들어주셔야 해결 되실 듯 합니다.


 

구글링하니 아래 내용이 검색되네요.. 보시고 컴파일 옵션을 바꿔주시면 해결 되실 듯 합니다.

http://stackoverflow.com/questions/28504875/android-ndk-cannot-load-libc-shared-so-gets-cannot-locate-symbol-rand-refe

익명사용자 님이 2015년 10월 28일 답변
2015년 10월 28일 수정
소중한 답변 감사합니다!
지금 저 글을 토대로 해결해 나가는 중입니다..
결과가 어찌될진 모르지만 감사합니다!
...