添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

Hello, I’ve successfully deployed an empty C++ project to Android, so now I’m trying to do the same with my main project, but nope… Here’s the LogCat output, any ideas?

09-07 11:50:51.715: D/ActivityThread(16860): handleBindApplication:pl.rdsgroup.shapedraft
09-07 11:50:51.715: D/ActivityThread(16860): setTargetHeapUtilization:0.75
09-07 11:50:51.715: D/ActivityThread(16860): setTargetHeapMinFree:2097152
09-07 11:50:51.805: D/dalvikvm(16860): Trying to load lib /data/app-lib/pl.rdsgroup.shapedraft-1/libgnustl_shared.so 0x41bfa998
09-07 11:50:51.825: D/dalvikvm(16860): Added shared lib /data/app-lib/pl.rdsgroup.shapedraft-1/libgnustl_shared.so 0x41bfa998
09-07 11:50:51.825: D/dalvikvm(16860): No JNI_OnLoad found in /data/app-lib/pl.rdsgroup.shapedraft-1/libgnustl_shared.so 0x41bfa998, skipping init
09-07 11:50:51.825: D/dalvikvm(16860): Trying to load lib /data/app-lib/pl.rdsgroup.shapedraft-1/libvrapi.so 0x41bfa998
09-07 11:50:51.860: D/dalvikvm(16860): Added shared lib /data/app-lib/pl.rdsgroup.shapedraft-1/libvrapi.so 0x41bfa998
09-07 11:50:51.860: D/dalvikvm(16860): No JNI_OnLoad found in /data/app-lib/pl.rdsgroup.shapedraft-1/libvrapi.so 0x41bfa998, skipping init
09-07 11:50:51.860: D/dalvikvm(16860): Trying to load lib /data/app-lib/pl.rdsgroup.shapedraft-1/libUE4.so 0x41bfa998
09-07 11:50:51.950: E/dalvikvm(16860): dlopen("/data/app-lib/pl.rdsgroup.shapedraft-1/libUE4.so") failed: dlopen failed: cannot locate symbol "atof" referenced by "libUE4.so"...
09-07 11:50:51.950: W/dalvikvm(16860): Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Lcom/epicgames/ue4/GameActivity;
09-07 11:50:51.950: W/dalvikvm(16860): Class init failed in newInstance call (Lcom/epicgames/ue4/GameActivity;)
09-07 11:50:51.955: D/AndroidRuntime(16860): Shutting down VM
09-07 11:50:51.955: W/dalvikvm(16860): threadid=1: thread exiting with uncaught exception (group=0x416face0)
09-07 11:50:51.960: E/AndroidRuntime(16860): FATAL EXCEPTION: main
09-07 11:50:51.960: E/AndroidRuntime(16860): Process: pl.rdsgroup.shapedraft, PID: 16860
09-07 11:50:51.960: E/AndroidRuntime(16860): java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "atof" referenced by "libUE4.so"...
09-07 11:50:51.960: E/AndroidRuntime(16860): 	at java.lang.Runtime.loadLibrary(Runtime.java:364)
09-07 11:50:51.960: E/AndroidRuntime(16860): 	at java.lang.System.loadLibrary(System.java:526)
09-07 11:50:51.960: E/AndroidRuntime(16860): 	at com.epicgames.ue4.GameActivity.<clinit>(GameActivity.java:1211)
09-07 11:50:51.960: E/AndroidRuntime(16860): 	at java.lang.Class.newInstanceImpl(Native Method)
09-07 11:50:51.960: E/AndroidRuntime(16860): 	at java.lang.Class.newInstance(Class.java:1208)
09-07 11:50:51.960: E/AndroidRuntime(16860): 	at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
09-07 11:50:51.960: E/AndroidRuntime(16860): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2122)
09-07 11:50:51.960: E/AndroidRuntime(16860): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2271)
09-07 11:50:51.960: E/AndroidRuntime(16860): 	at android.app.ActivityThread.access$800(ActivityThread.java:144)
09-07 11:50:51.960: E/AndroidRuntime(16860): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
09-07 11:50:51.960: E/AndroidRuntime(16860): 	at android.os.Handler.dispatchMessage(Handler.java:102)
09-07 11:50:51.960: E/AndroidRuntime(16860): 	at android.os.Looper.loop(Looper.java:136)
09-07 11:50:51.960: E/AndroidRuntime(16860): 	at android.app.ActivityThread.main(ActivityThread.java:5146)
09-07 11:50:51.960: E/AndroidRuntime(16860): 	at java.lang.reflect.Method.invokeNative(Native Method)
09-07 11:50:51.960: E/AndroidRuntime(16860): 	at java.lang.reflect.Method.invoke(Method.java:515)
09-07 11:50:51.960: E/AndroidRuntime(16860): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:732)
09-07 11:50:51.960: E/AndroidRuntime(16860): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566)
09-07 11:50:51.960: E/AndroidRuntime(16860): 	at dalvik.system.NativeStart.main(Native Method)

// Edit
So I’ve found out that it’s happening on Samsung Galaxy S3 when I use custom GameInstance. On HTC M8 the error doesn’t exist.

Hi Kosmo,

This really is the NDK API Level set to above android-19 causing the problem. Some standard functions (like atof) were moved from static inline to libc.so starting with android-21. Only Lollipop and above have the libc.so with the functions which is why it is failing in dlopen.

If you have checked the NDK API Level is actually set to android-19, I’d next check to make sure it recompiled. Try turning on “Full Rebuild” in the Project Settings Packaging section. You should see it recompile your source files when you package.