Skip to content
This repository has been archived by the owner on Nov 24, 2019. It is now read-only.

Unsatisfied Symbol on API 25 with Ti SDK >= 7 #91

Open
danieljlevine opened this issue Mar 19, 2018 · 3 comments
Open

Unsatisfied Symbol on API 25 with Ti SDK >= 7 #91

danieljlevine opened this issue Mar 19, 2018 · 3 comments

Comments

@danieljlevine
Copy link

danieljlevine commented Mar 19, 2018

Really glad to have alarm manager for my application. However, a user reported that on their Galaxy S6 device my Appcelerator app would crash immediately. So I loaded up a simulator and got it to crash too for Ti SDK 7.1GA, 7.0.2GA and 7.0.1GA. However, it does work for SDK 6.3.0.v20171030181741 (the only older version I have now.

When it crashed, studio reports (snipped):

[INFO] : Project built successfully in 43s 409ms
-- Start application log -----------------------------------------------------
[WARN] : art: Unexpected CPU variant for X86 using defaults: x86
[INFO] : TiApplication: (main) [0,0] checkpoint, app created.
[INFO] : TiApplication: (main) [13,13] Titanium 7.1.0 (2018/03/14 13:40 undefined)
[INFO] : MultiDex: VM with version 2.1.0 has multidex support
[INFO] : MultiDex: install
[INFO] : MultiDex: VM has multidex support, MultiDex support library is disabled.
[WARN] : TiAndroid: (main) [771,784] Application instance no longer available. Unable to get current activity.
[WARN] : TiAndroid: (main) [5,789] Application instance no longer available. Unable to get current activity.
[WARN] : TiAndroid: (main) [0,789] Application instance no longer available. Unable to get current activity.
[ERROR] : TiApplication: (main) [34,823] Sending event: exception on thread: main msg:java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "_ZNSt3__112__next_primeEj" referenced by "/data/app/edu.jhuapl.InTheZoneChallenge-1/lib/x86/libbencoding.alarmmanager.so"...; Titanium 7.1.0,2018/03/14 13:40,undefined
[ERROR] : TiApplication: java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "_ZNSt3__112__next_primeEj" referenced by "/data/app/edu.jhuapl.InTheZoneChallenge-1/lib/x86/libbencoding.alarmmanager.so"...
[ERROR] : TiApplication: at java.lang.Runtime.loadLibrary0(Runtime.java:989)
[ERROR] : TiApplication: at java.lang.System.loadLibrary(System.java:1530)
[ERROR] : TiApplication: at org.appcelerator.kroll.runtime.v8.V8Runtime.loadExternalModules(V8Runtime.java:142)
[ERROR] : TiApplication: at org.appcelerator.kroll.runtime.v8.V8Runtime.initRuntime(V8Runtime.java:109)
[ERROR] : TiApplication: at org.appcelerator.kroll.KrollRuntime.doInit(KrollRuntime.java:207)
[ERROR] : TiApplication: at org.appcelerator.kroll.KrollRuntime$KrollRuntimeThread.run(KrollRuntime.java:113)
[ERROR] : TiApplication: at org.appcelerator.kroll.KrollRuntime.init(KrollRuntime.java:135)
[ERROR] : TiApplication: at edu.jhuapl.InTheZoneChallenge.InthezonechallengetrackerApplication.onCreate(InthezonechallengetrackerApplication.java:77)
[ERROR] : TiApplication: at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1024)
[ERROR] : TiApplication: at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5403)
[ERROR] : TiApplication: at android.app.ActivityThread.-wrap2(ActivityThread.java)
[ERROR] : TiApplication: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1545)
[ERROR] : TiApplication: at android.os.Handler.dispatchMessage(Handler.java:102)
[ERROR] : TiApplication: at android.os.Looper.loop(Looper.java:154)
[ERROR] : TiApplication: at android.app.ActivityThread.main(ActivityThread.java:6119)
[ERROR] : TiApplication: at java.lang.reflect.Method.invoke(Native Method)
[ERROR] : TiApplication: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
[ERROR] : TiApplication: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

So, if I'm reading this correctly, it's having trouble finding next prime? I didn't see any reference to it in the code of the repo. Any idea as to how to resolve this to work for more recent Appcelerator SDKs to work on Android API 25?

@danieljlevine
Copy link
Author

With the help of the Appcelerator chat support team, I managed to stumble through the process of how to fix this issue. Needed to get NDK 16 and configure Appcelerator Studio to use it. Forked the module on Github. Git cloned to a local directory. Added existing directory as a Module project in Appcelerator Studio. Opened a command shell and went into the base directory of the new module project and typed: appc run -p android --build-only

This turned 1.0.0 int 1.0.1 and made some necessary modifications including a rebuilt using the NDK 16 (I assume). This churned for a while but then completed in what appeared to be successful.

Got the zip file that was made in the module project's dist/ directory and copied it into the base directory my Appcelerator app. Built my app and magically the 1.0.1 version found it's way into the right play in the project under modules and the app built and finally ran!

@moizchhatriwala
Copy link

Can you share the updated zip with us.

@deckameron
Copy link

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants