Thanks,
upgrading to API level 21 did fix that particular problem. Btw, can
you advise on which of the libraries I need to load, and in what
order?

I tried this:

    static {
        Log.d(TAG, "Loading native libraries...");
        System.loadLibrary("connectivity_abstraction");
        System.loadLibrary("octbstack");
        System.loadLibrary("oc");
        System.loadLibrary("oc_logger");
        System.loadLibrary("gnustl_shared");
        System.loadLibrary("ca-interface");
        System.loadLibrary("ocstack-jni");
        Log.d(TAG, "Done loading native libraries.");
    }

and Crosswalk complains about a mysterious (i.e. not better specified)
UnsatisfiedLinkError:

D/XWALK_OIC( 2399): Loading native libraries...
I/JNI_CA_INTERFACE( 2399): CaInterface_initialize
I/CA_ADAPTER_UTILS( 2399): CANativeJNISetJavaVM
I/OIC-JNI ( 2399): JNI_OnLoad
D/AndroidRuntime( 2399): Shutting down VM
E/AndroidRuntime( 2399): FATAL EXCEPTION: main
E/AndroidRuntime( 2399): Process:
org.crosswalkproject.crosswalk_oic_demo, PID: 2399
E/AndroidRuntime( 2399): java.lang.UnsatisfiedLinkError: JNI_ERR
returned from JNI_OnLoad in
"/data/app/org.crosswalkproject.crosswalk_oic_demo-1/lib/x86/libocstack-jni.so"
E/AndroidRuntime( 2399):     at java.lang.Runtime.loadLibrary(Runtime.java:371)
E/AndroidRuntime( 2399):     at java.lang.System.loadLibrary(System.java:989)
E/AndroidRuntime( 2399):     at
org.crosswalkproject.oic.OIC.<clinit>(OIC.java:30)
E/AndroidRuntime( 2399):     at
java.lang.reflect.Constructor.newInstance(Native Method)
E/AndroidRuntime( 2399):     at
java.lang.reflect.Constructor.newInstance(Constructor.java:288)
E/AndroidRuntime( 2399):     at
org.xwalk.app.runtime.extension.XWalkRuntimeExtensionManager.createExternalExtension(XWalkRuntimeExtensionManager.java:221)
E/AndroidRuntime( 2399):     at
org.xwalk.app.runtime.extension.XWalkRuntimeExtensionManager.loadExternalExtensions(XWalkRuntimeExtensionManager.java:170)
E/AndroidRuntime( 2399):     at
org.xwalk.app.runtime.extension.XWalkRuntimeExtensionManager.loadExtensions(XWalkRuntimeExtensionManager.java:132)
E/AndroidRuntime( 2399):     at
org.xwalk.app.XWalkRuntimeActivityBase.tryLoadRuntimeView(XWalkRuntimeActivityBase.java:134)
E/AndroidRuntime( 2399):     at
org.xwalk.app.XWalkRuntimeActivityBase.onCreate(XWalkRuntimeActivityBase.java:45)
E/AndroidRuntime( 2399):     at
org.crosswalkproject.crosswalk_oic_demo.CrosswalkOicDemoActivity.onCreate(CrosswalkOicDemoActivity.java:21)
E/AndroidRuntime( 2399):     at
android.app.Activity.performCreate(Activity.java:5937)
E/AndroidRuntime( 2399):     at
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
E/AndroidRuntime( 2399):     at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
E/AndroidRuntime( 2399):     at
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
E/AndroidRuntime( 2399):     at
android.app.ActivityThread.access$800(ActivityThread.java:144)
E/AndroidRuntime( 2399):     at
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
E/AndroidRuntime( 2399):     at
android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime( 2399):     at android.os.Looper.loop(Looper.java:135)
E/AndroidRuntime( 2399):     at
android.app.ActivityThread.main(ActivityThread.java:5221)
E/AndroidRuntime( 2399):     at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime( 2399):     at java.lang.reflect.Method.invoke(Method.java:372)
E/AndroidRuntime( 2399):     at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
E/AndroidRuntime( 2399):     at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
W/ActivityManager( 1221):   Force finishing activity
org.crosswalkproject.crosswalk_oic_demo/.CrosswalkOicDemoActivity


If I try to omit `System.loadLibrary("ocstack-jni");`, then the JNI
loading completes with no errors, but when using `PlatformConfig` I
get:

E/XWalkExtensionManager( 2461): Error in calling methods of external
extensions. java.lang.reflect.InvocationTargetException

Unfortunately there are no more details in logcat.

Ideas?
Thanks!



On Fri, Jun 12, 2015 at 7:16 PM, Lenahan, Charlie
<charlie.lenahan at intel.com> wrote:
>
> This was covered in an earlier thread ~5/21/15 ,  that symbol was for
> android-21, which is what the build is set for.
>
> To run it on an older device you will have to change what it is targeting.
>
> On 6/12/15, 6:34 AM, "Iovene, Salvatore" <salvatore.iovene at intel.com>
> wrote:
>
>>Hi,
>>I built Iotivity for Android using the Scons README file and a recent
>>check out of the master branch, and I got a nice .aar file with
>>classes.jar and .so files. Great!
>>
>>I tried to use Iotivity in an Android app (really a Crosswalk
>>extension), but upon attempting to use "System.loadLibrary" to load
>>the .so files, I get this error at run time:
>>
>>E/dalvikvm(14417):
>>dlopen("/data/app-lib/org.crosswalkproject.crosswalk_oic_demo-2/libconnect
>>ivity_abstraction.so")
>>failed: dlopen failed: cannot locate symbol
>>"pthread_condattr_setclock" referenced by
>>"libconnectivity_abstraction.so"...
>>
>>It looks like pthread cannot be found? Could I possibly be missing
>>something? This is on an Android 4.4.2 device.
>>
>>Thanks in advance!
>>Salvatore
>>
>>--
>>Salvatore Iovene <salvatore.iovene at intel.com>
>>Linux Software Engineer
>>Intel Open Source Technology Center, Finland
>>Tel.: +358504804026
>>_______________________________________________
>>iotivity-dev mailing list
>>iotivity-dev at lists.iotivity.org
>>https://lists.iotivity.org/mailman/listinfo/iotivity-dev



-- 
Salvatore Iovene <salvatore.iovene at intel.com>
Linux Software Engineer
Intel Open Source Technology Center, Finland
Tel.: +358504804026

Reply via email to