Java Question assets and libs folders

warwound

Expert
Licensed User
Longtime User
If a native Android library requires resources in the assets and libs folders and i copy these folders to my B4A project's Objects folder and mark them read-only will they be compiled into the B4A application in the same way tha we add drawables etc?

I have an excpetion:

java.io.FileNotFoundException: droyd/sdk.properties

In my Objects folder i have assets/droyd/sdk.properties and it's marked read only.

I also have folders:

assets/droyd/resources/svg/
assets/droyd/resources/svg/poi

These both contain a number of SVG graphics.

Then there is:

assets/droyd/themes

And:

libs/armeabi
libs/armeabi-v7a
libs/x86

These folders contain JNI .so files.

Will the B4A compiler include all of these additional folders?

Does the B4A compiler handle JNI files correctly?

This is the log output i'm trying to debug:

>>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
Heap size: -Xmx32m
CheckJNI is OFF


Calling main entry com.android.commands.pm.Pm


GC_EXPLICIT freed 4K, 51% free 2681K/5379K, external 0K/0K, paused 44ms


No content provider found for:
No content provider found for:


Scanning package: /data/app/vmdl618616265.tmp


Removing non-system package:uk.co.martinpearman.b4a.droyddemo


Force stopping package uk.co.martinpearman.b4a.droyddemo uid=10096
Scanning package uk.co.martinpearman.b4a.droyddemo


DexInv: --- BEGIN '/data/app/uk.co.martinpearman.b4a.droyddemo-1.apk' ---


Package uk.co.martinpearman.b4a.droyddemo codePath changed from /data/app/uk.co.martinpearman.b4a.droyddemo-2.apk to /data/app/uk.co.martinpearman.b4a.droyddemo-1.apk; Retaining data and using new
DexOpt: load 111ms, verify+opt 1071ms


DexInv: --- END '/data/app/uk.co.martinpearman.b4a.droyddemo-1.apk' (success) ---


Unpacking native libraries for /data/app/uk.co.martinpearman.b4a.droyddemo-1.apk
DexInv: --- BEGIN '/data/app/uk.co.martinpearman.b4a.droyddemo-1.apk' ---


DexOpt: load 117ms, verify+opt 1071ms


DexInv: --- END '/data/app/uk.co.martinpearman.b4a.droyddemo-1.apk' (success) ---


Activities: uk.co.martinpearman.b4a.droyddemo.main


Force stopping package uk.co.martinpearman.b4a.droyddemo uid=10096
Code path for pkg : uk.co.martinpearman.b4a.droyddemo changing from /data/app/uk.co.martinpearman.b4a.droyddemo-2.apk to /data/app/uk.co.martinpearman.b4a.droyddemo-1.apk
Resource path for pkg : uk.co.martinpearman.b4a.droyddemo changing from /data/app/uk.co.martinpearman.b4a.droyddemo-2.apk to /data/app/uk.co.martinpearman.b4a.droyddemo-1.apk
move /data/dalvik-cache/data@[email protected]@classes.dex -> /data/dalvik-cache/data@[email protected]@classes.dex


New package installed in /data/app/uk.co.martinpearman.b4a.droyddemo-1.apk


GC_CONCURRENT freed 1675K, 40% free 6797K/11207K, external 5044K/6204K, paused 7ms+16ms


Force stopping package uk.co.martinpearman.b4a.droyddemo uid=10096


GC_EXPLICIT freed 341K, 55% free 3522K/7687K, external 4549K/4963K, paused 69ms


Initializing inflate state


Initializing inflate state


onReceive Intent { act=android.intent.action.PACKAGE_REMOVED dat=package:uk.co.martinpearman.b4a.droyddemo flg=0x10000000 cmp=com.android.voicedialer/.VoiceDialerReceiver (has extras) }


deleteCachedGrammarFiles /data/data/com.android.voicedialer/files/openentries.txt
Handling replaced theme package: uk.co.martinpearman.b4a.droyddemo


Initializing inflate state
no available voice recognition services found


GC_EXPLICIT freed 1013K, 42% free 6589K/11207K, external 4968K/6204K, paused 138ms


Initializing inflate state


Initializing inflate state


Initializing inflate state


Initializing inflate state


handlePackageInstalled: re-initialize providers


[RawStanzaProvidersMgr] ##### searchProvidersFromIntent
[RawStanzaProvidersMgr] no intent receivers found
onReceive Intent { act=android.intent.action.PACKAGE_ADDED dat=package:uk.co.martinpearman.b4a.droyddemo flg=0x10000000 cmp=com.android.voicedialer/.VoiceDialerReceiver (has extras) }


deleteCachedGrammarFiles /data/data/com.android.voicedialer/files/openentries.txt
Application package was replaced (eg: upgraded) => Scheduling next wake-up ...


scheduleNextWakeup(): Invoked with idToExcludeForToday=null


unlink /data/dalvik-cache/data@[email protected]@classes.dex


Initializing inflate state


Shutting down VM
NOTE: attach of thread 'Binder Thread #3' failed


scheduleNextWakeup(): No next wakeup scheduled.
GC_CONCURRENT freed 100K, 71% free 298K/1024K, external 0K/0K, paused 0ms+11ms
adbd disconnected



>>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
Heap size: -Xmx32m
CheckJNI is OFF


Calling main entry com.android.commands.am.Am


Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=uk.co.martinpearman.b4a.droyddemo/.main } from pid 3266


Shutting down VM


Start proc uk.co.martinpearman.b4a.droyddemo for activity uk.co.martinpearman.b4a.droyddemo/.main: pid=3276 uid=10096 gids={3003, 1015}


GC_CONCURRENT freed 102K, 69% free 323K/1024K, external 0K/0K, paused 1ms+1ms
adbd disconnected
Initializing inflate state


NOTE: attach of thread 'Binder Thread #3' failed
Initializing inflate state


GC_EXTERNAL_ALLOC freed 40K, 50% free 2700K/5379K, external 0K/0K, paused 85ms


java.lang.NoSuchFieldException: flags
at java.lang.ClassCache.findFieldByName(ClassCache.java:446)
at java.lang.Class.getDeclaredField(Class.java:666)
at anywheresoftware.b4a.Msgbox.<clinit>(Msgbox.java:51)
at uk.co.martinpearman.b4a.droyddemo.main.onResume(main.java:176)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1150)
at android.app.Activity.performResume(Activity.java:3832)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2231)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2256)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1789)
at android.app.ActivityThread.access$1500(ActivityThread.java:123)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:939)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3835)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
at dalvik.system.NativeStart.main(Native Method)
** Activity (main) Create, isFirst = true **


Could not load sdk.properties

java.io.FileNotFoundException: droyd/sdk.properties
at android.content.res.AssetManager.openAsset(Native Method)
at android.content.res.AssetManager.open(AssetManager.java:337)
at com.osa.android.geomap.b.b.a(Unknown Source)
at com.osa.android.droyd.map.DroydMapComponent.a(Unknown Source)
at com.osa.android.droyd.map.DroydMapComponent.b(Unknown Source)
at com.osa.android.droyd.map.DroydMapComponent.<init>(Unknown Source)
at uk.co.martinpearman.b4a.droyd.map.DroydMapComponentWrapper.Initialize(DroydMapComponentWrapper.java:62)
at uk.co.martinpearman.b4a.droyddemo.main._activity_create(main.java:209)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:145)
at uk.co.martinpearman.b4a.droyddemo.main.afterFirstLayout(main.java:84)
at uk.co.martinpearman.b4a.droyddemo.main.access$100(main.java:16)
at uk.co.martinpearman.b4a.droyddemo.main$WaitForLayout.run(main.java:72)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3835)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
at dalvik.system.NativeStart.main(Native Method)
main_activity_create (java line: 209)

java.lang.NullPointerException
at com.osa.android.droyd.map.DroydMapComponent.themeGetDefault(Unknown Source)
at com.osa.android.droyd.map.DroydMapComponent.setMapView(Unknown Source)
at uk.co.martinpearman.b4a.droyd.map.DroydMapComponentWrapper.Initialize(DroydMapComponentWrapper.java:66)
at uk.co.martinpearman.b4a.droyddemo.main._activity_create(main.java:209)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:145)
at uk.co.martinpearman.b4a.droyddemo.main.afterFirstLayout(main.java:84)
at uk.co.martinpearman.b4a.droyddemo.main.access$100(main.java:16)
at uk.co.martinpearman.b4a.droyddemo.main$WaitForLayout.run(main.java:72)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3835)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
at dalvik.system.NativeStart.main(Native Method)
java.lang.NullPointerException
Displayed uk.co.martinpearman.b4a.droyddemo/.main: +942ms

Jit: resizing JitTable from 512 to 1024

Sending signal. PID: 3276 SIG: 9

WIN DEATH: Window{40787af8 uk.co.martinpearman.b4a.droyddemo/uk.co.martinpearman.b4a.droyddemo.main paused=false}


Process uk.co.martinpearman.b4a.droyddemo (pid 3276) has died.
WIN DEATH: Window{40928b18 uk.co.martinpearman.b4a.droyddemo/uk.co.martinpearman.b4a.droyddemo.main paused=false}
-- loadPreferences()
Got RemoteException sending setActive(false) notification to pid 3276 uid 10096

Thanks for any help...

Martin.
 
Top