Read this first: Non working features

[exec] /Projects/panaray/client/Builds/Android/jni/../../../../juce/modules/juce_gui_basics/../juce_graphics/../juce_core/system/../logging/../text/../memory/juce_Atomic.h:335: undefined reference to `__atomic_dec' [exec] ./obj/local/armeabi/objs/juce_jni/__/__/__/__/juce/modules/juce_gui_basics/juce_gui_basics.o: In function `juce::Atomic<int>::operator++()': [exec] /Projects/panaray/client/Builds/Android/jni/../../../../juce/modules/juce_gui_basics/../juce_graphics/../juce_core/system/../logging/../text/../memory/juce_Atomic.h:319: undefined reference to `__atomic_inc' [exec] /Projects/panaray/client/Builds/Android/jni/../../../../juce/modules/juce_gui_basics/../juce_graphics/../juce_core/system/../logging/../text/../memory/juce_Atomic.h:319: undefined reference to `__atomic_inc' [exec] ./obj/local/armeabi/objs/juce_jni/__/__/__/__/juce/modules/juce_gui_basics/juce_gui_basics.o: In function `juce::Atomic<int>::operator--()': [exec] /Projects/panaray/client/Builds/Android/jni/../../../../juce/modules/juce_gui_basics/../juce_graphics/../juce_core/system/../logging/../text/../memory/juce_Atomic.h:335: undefined reference to `__atomic_dec' [exec] /Projects/panaray/client/Builds/Android/jni/../../../../juce/modules/juce_gui_basics/../juce_graphics/../juce_core/system/../logging/../text/../memory/juce_Atomic.h:335: undefined reference to `__atomic_dec' [exec] /Projects/panaray/client/Builds/Android/jni/../../../../juce/modules/juce_gui_basics/../juce_graphics/../juce_core/system/../logging/../text/../memory/juce_Atomic.h:335: undefined reference to `__atomic_dec' [exec] ./obj/local/armeabi/objs/juce_jni/__/__/__/__/juce/modules/juce_gui_basics/juce_gui_basics.o: In function `juce::Atomic<int>::operator++()': [exec] /Projects/panaray/client/Builds/Android/jni/../../../../juce/modules/juce_gui_basics/../juce_graphics/../juce_core/system/../logging/../text/../memory/juce_Atomic.h:319: undefined reference to `__atomic_inc' [exec] ./obj/local/armeabi/objs/juce_jni/__/__/__/__/juce/modules/juce_gui_basics/juce_gui_basics.o: In function `juce::Atomic<int>::operator--()': [exec] /Projects/panaray/client/Builds/Android/jni/../../../../juce/modules/juce_gui_basics/../juce_graphics/../juce_core/system/../logging/../text/../memory/juce_Atomic.h:335: undefined reference to `__atomic_dec' [exec] /Projects/panaray/client/Builds/Android/jni/../../../../juce/modules/juce_gui_basics/../juce_graphics/../juce_core/system/../logging/../text/../memory/juce_Atomic.h:335: undefined reference to `__atomic_dec' [exec] /Projects/panaray/client/Builds/Android/jni/../../../../juce/modules/juce_gui_basics/../juce_graphics/../juce_core/system/../logging/../text/../memory/juce_Atomic.h:335: undefined reference to `__atomic_dec' [exec] /Projects/panaray/client/Builds/Android/jni/../../../../juce/modules/juce_gui_basics/../juce_graphics/../juce_core/system/../logging/../text/../memory/juce_Atomic.h:335: undefined reference to `__atomic_dec' [exec] /Projects/panaray/client/Builds/Android/jni/../../../../juce/modules/juce_gui_basics/../juce_graphics/../juce_core/system/../logging/../text/../memory/juce_Atomic.h:335: undefined reference to `__atomic_dec'

etc… To many references for Atomic and too many errors, phpBB chokes when posting all.

Sorry, have been messing with stuff and probably broken the android build, I’ll check it today.

Hi Jules,

I’m having some trouble building the demo project (using git modules branch updated today)

android-ndk-r7

Looks like to be an issue with includes path but don’t know much what do to about it.
(complete android noob here though)

iMac-de-olivier:JuceDemo otristan$ export NDK_PROJECT_PATH=/Users/otristan/androidCode/juce/extras/JuceDemo/Builds/Android/ iMac-de-olivier:JuceDemo otristan$ /Users/otristan/android-ndk-r7/ndk-buildInvalid attribute name: package Android NDK: WARNING: Invalid LOCAL_CPP_EXTENSION values: cpp Compile++ thumb : juce_jni <= ApplicationStartup.cpp Compile++ thumb : juce_jni <= MainDemoWindow.cpp Compile++ thumb : juce_jni <= AudioDemoLatencyPage.cpp Compile++ thumb : juce_jni <= AudioDemoPlaybackPage.cpp Compile++ thumb : juce_jni <= AudioDemoRecordPage.cpp Compile++ thumb : juce_jni <= AudioDemoSetupPage.cpp Compile++ thumb : juce_jni <= AudioDemoSynthPage.cpp Compile++ thumb : juce_jni <= AudioDemoTabComponent.cpp Compile++ thumb : juce_jni <= CameraDemo.cpp Compile++ thumb : juce_jni <= CodeEditorDemo.cpp Compile++ thumb : juce_jni <= DirectShowDemo.cpp Compile++ thumb : juce_jni <= DragAndDropDemo.cpp Compile++ thumb : juce_jni <= FontsAndTextDemo.cpp Compile++ thumb : juce_jni <= InterprocessCommsDemo.cpp Compile++ thumb : juce_jni <= OpenGLDemo.cpp Compile++ thumb : juce_jni <= QuickTimeDemo.cpp Compile++ thumb : juce_jni <= RenderingTestComponent.cpp Compile++ thumb : juce_jni <= TableDemo.cpp Compile++ thumb : juce_jni <= ThreadingDemo.cpp Compile++ thumb : juce_jni <= TreeViewDemo.cpp Compile++ thumb : juce_jni <= WebBrowserDemo.cpp Compile++ thumb : juce_jni <= WidgetsDemo.cpp Compile++ thumb : juce_jni <= BinaryData.cpp Compile++ thumb : juce_jni <= juce_audio_basics.cpp /Users/otristan/androidCode/juce/extras/JuceDemo/Builds/Android//jni/../../../../../modules/juce_audio_basics/juce_audio_basics.cpp:37:23: error: AppConfig.h: No such file or directory make: *** [/Users/otristan/androidCode/juce/extras/JuceDemo/Builds/Android//obj/local/armeabi/objs/juce_jni/__/__/__/__/__/modules/juce_audio_basics/juce_audio_basics.o] Error 1

If I copy manually the Appconfig in each modules (yeah yeah ugly)

I now got this error

In file included from /Users/otristan/androidCode/juce/extras/JuceDemo/Builds/Android//jni/../../../../../modules/juce_graphics/juce_graphics.cpp:122: /Users/otristan/androidCode/juce/extras/JuceDemo/Builds/Android//jni/../../../../../modules/juce_graphics/native/juce_android_Fonts.cpp:222: error: 'GlyphLayout' has not been declared make: *** [/Users/otristan/androidCode/juce/extras/JuceDemo/Builds/Android//obj/local/armeabi/objs/juce_jni/__/__/__/__/__/modules/juce_graphics/juce_graphics.o] Error 1

Thanks,

bump :slight_smile:

I’ve not updated to NDK r7 yet. (They do a lot of releases, don’t they!) Will do so soon and check this out…

Thanks a lot.

GlyphLayout is now fixed but I now got the same issue as aiit have with Atomic :frowning:

Did you find a workaround aiit ?

Thanks,

Ok I finally made it work.

Looks like you need to add some link flags:
-landroid -llog -lstdc++
to LOCAL_LDLIBS of Android.mk

I’ve changed as well the APP_PLATFORM and target to android-10
in project.properties and Application.mk
to AndroidManifest.xml

Not sure all of this is required though.
Trial and error is a bit time consuming as you need to recompile everything from scratch all the time.

Jules, Could you add to the rep your java files of the Juce Demo to launch the Juce Demo on an actual device ?
So far it only compiles the .so

Thanks,

[quote]Jules, Could you add to the rep your java files of the Juce Demo to launch the Juce Demo on an actual device ?
So far it only compiles the .so[/quote]

? They’re in juce_core/native/java… There are no other ones needed.

oh I see

so is there is a reason why the Juce Demo android project do not create the apk ?

Thanks,

You need to use eclipse to launch it - that’ll create and install the apk.

ok I see.

I made it work.
It require some moving here and there though.

Thanks,

The Audio demo make the application crash on a Samsung Galaxy Tab 10.1 FWIW

Ok… Got a stack trace for that?

Juce [Android Application]
DalvikVM[localhost:8600]
Thread [<1> main] (Suspended (exception IllegalStateException))
AudioRecord.startRecording() line: 509
JuceAppActivity.deliverMessage(long) line: not available [native method]
JuceAppActivity$MessageCallback.run() line: 110
Handler.handleCallback(Message) line: 587
Handler.dispatchMessage(Message) line: 92
Looper.loop() line: 132
ActivityThread.main(String[]) line: 4028
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]
Method.invoke(Object, Object…) line: 491
ZygoteInit$MethodAndArgsCaller.run() line: 844
ZygoteInit.main(String[]) line: 602
NativeStart.main(String[]) line: not available [native method]
Thread [<8> Binder Thread #2] (Running)
Thread [<7> Binder Thread #1] (Running)
Thread [<9> Thread-11] (Running)
Thread [<10> Thread-12] (Running)
Thread [<11> Thread-13] (Running)
Thread [<12> Thread-14] (Running)
Thread [<13> AudioTrackThread] (Running)

I got those error logs

12-08 16:02:50.389: I/dalvikvm(2176): Debugger is active
12-08 16:02:50.570: I/System.out(2176): Debugger has connected
12-08 16:02:50.580: I/System.out(2176): waiting for debugger to settle…
12-08 16:02:50.780: I/System.out(2176): waiting for debugger to settle…
12-08 16:02:50.979: I/System.out(2176): waiting for debugger to settle…
12-08 16:02:51.169: I/dalvikvm(2176): threadid=4: reacting to signal 3
12-08 16:02:51.169: I/dalvikvm(2176): Wrote stack traces to '/data/anr/traces.txt’
12-08 16:02:51.179: I/System.out(2176): waiting for debugger to settle…
12-08 16:02:51.379: I/System.out(2176): waiting for debugger to settle…
12-08 16:02:51.580: I/System.out(2176): waiting for debugger to settle…
12-08 16:02:51.780: I/System.out(2176): waiting for debugger to settle…
12-08 16:02:51.980: I/System.out(2176): debugger has settled (1305)
12-08 16:02:52.000: D/dalvikvm(2176): Trying to load lib /data/data/com.juce/lib/libjuce_jni.so 0x406c3de0
12-08 16:02:52.029: D/dalvikvm(2176): Added shared lib /data/data/com.juce/lib/libjuce_jni.so 0x406c3de0
12-08 16:02:52.029: D/dalvikvm(2176): No JNI_OnLoad found in /data/data/com.juce/lib/libjuce_jni.so 0x406c3de0, skipping init
12-08 16:02:52.029: I/ApplicationPackageManager(2176): cscCountry is not German : XEF
12-08 16:02:52.090: I/ApplicationPackageManager(2176): cscCountry is not German : XEF
12-08 16:02:52.100: V/TLINE(2176): new: android.text.TextLine@406e0b40
12-08 16:02:52.170: I/Juce(2176): Time and date: 8 Dec 2011 4:02:52pm
12-08 16:02:52.170: I/Juce(2176): User logon name: app_113
12-08 16:02:52.170: I/Juce(2176): Full user name: app_113
12-08 16:02:52.170: I/Juce(2176): Host name: localhost
12-08 16:02:52.170: I/Juce(2176): Operating system: Android 2.6.36.3
12-08 16:02:52.170: I/Juce(2176): Memory size: 0MB
12-08 16:02:52.170: I/Juce(2176): Number of CPUs: 2
12-08 16:02:52.170: I/Juce(2176): CPU vendor: armv7l
12-08 16:02:52.170: I/Juce(2176): CPU speed: 0MHz
12-08 16:02:52.170: I/Juce(2176): CPU has MMX: no
12-08 16:02:52.170: I/Juce(2176): CPU has SSE: no
12-08 16:02:52.170: I/Juce(2176): CPU has SSE2: no
12-08 16:02:52.170: I/Juce(2176): CPU has 3DNOW: no
12-08 16:02:52.170: I/Juce(2176): Found network card MAC addresses:
12-08 16:02:52.170: I/Juce(2176): Current working directory: /
12-08 16:02:52.170: I/Juce(2176): Current executable file: /data/app/com.juce-2.apk
12-08 16:02:52.170: I/Juce(2176): Current application file: /data/app/com.juce-2.apk
12-08 16:02:52.170: I/Juce(2176): User home directory: /data/data/com.juce
12-08 16:02:52.170: I/Juce(2176): User documents directory: /data/data/com.juce
12-08 16:02:52.170: I/Juce(2176): User application data directory: /data/data/com.juce
12-08 16:02:52.170: I/Juce(2176): Common application data directory: /data/data/com.juce
12-08 16:02:52.170: I/Juce(2176): Temp directory: /data/data/com.juce/.temp
12-08 16:02:52.170: I/Juce(2176):
12-08 16:02:52.250: D/dalvikvm(2176): GC_FOR_ALLOC freed 45K, 4% free 6286K/6531K, paused 27ms
12-08 16:02:52.250: I/dalvikvm-heap(2176): Grow heap (frag case) to 9.920MB for 3862416-byte allocation
12-08 16:02:52.300: D/dalvikvm(2176): GC_FOR_ALLOC freed <1K, 3% free 10057K/10311K, paused 25ms
12-08 16:02:52.350: D/dalvikvm(2176): GC_CONCURRENT freed 11K, 3% free 10059K/10311K, paused 2ms+2ms
12-08 16:02:59.140: I/dalvikvm(2176): threadid=4: reacting to signal 3
12-08 16:02:59.150: I/dalvikvm(2176): Wrote stack traces to '/data/anr/traces.txt’
12-08 16:03:23.730: D/PhoneWindow(2176): couldn’t save which view has focus because the focused view com.juce.ComponentPeerView@406e24c0 has no id.
12-08 16:03:23.800: I/ApplicationPackageManager(2176): cscCountry is not German : XEF
12-08 16:03:23.850: I/Juce(2176): Time and date: 8 Dec 2011 4:03:23pm
12-08 16:03:23.850: I/Juce(2176): User logon name: app_113
12-08 16:03:23.850: I/Juce(2176): Full user name: app_113
12-08 16:03:23.850: I/Juce(2176): Host name: localhost
12-08 16:03:23.850: I/Juce(2176): Operating system: Android 2.6.36.3
12-08 16:03:23.850: I/Juce(2176): Memory size: 0MB
12-08 16:03:23.850: I/Juce(2176): Number of CPUs: 2
12-08 16:03:23.850: I/Juce(2176): CPU vendor: armv7l
12-08 16:03:23.850: I/Juce(2176): CPU speed: 0MHz
12-08 16:03:23.850: I/Juce(2176): CPU has MMX: no
12-08 16:03:23.850: I/Juce(2176): CPU has SSE: no
12-08 16:03:23.850: I/Juce(2176): CPU has SSE2: no
12-08 16:03:23.850: I/Juce(2176): CPU has 3DNOW: no
12-08 16:03:23.850: I/Juce(2176): Found network card MAC addresses:
12-08 16:03:23.850: I/Juce(2176): Current working directory: /
12-08 16:03:23.850: I/Juce(2176): Current executable file: /data/app/com.juce-2.apk
12-08 16:03:23.850: I/Juce(2176): Current application file: /data/app/com.juce-2.apk
12-08 16:03:23.850: I/Juce(2176): User home directory: /data/data/com.juce
12-08 16:03:23.850: I/Juce(2176): User documents directory: /data/data/com.juce
12-08 16:03:23.850: I/Juce(2176): User application data directory: /data/data/com.juce
12-08 16:03:23.850: I/Juce(2176): Common application data directory: /data/data/com.juce
12-08 16:03:23.850: I/Juce(2176): Temp directory: /data/data/com.juce/.temp
12-08 16:03:23.850: I/Juce(2176):
12-08 16:03:23.910: D/dalvikvm(2176): GC_FOR_ALLOC freed 4026K, 40% free 6305K/10439K, paused 22ms
12-08 16:03:23.910: I/dalvikvm-heap(2176): Grow heap (frag case) to 9.805MB for 3722256-byte allocation
12-08 16:03:23.950: D/dalvikvm(2176): GC_CONCURRENT freed 0K, 5% free 9940K/10439K, paused 2ms+1ms
12-08 16:03:24.170: D/CLIPBOARD(2176): Hide Clipboard dialog at Starting input: finished by someone else… !
12-08 16:03:30.460: E/AudioRecord(2176): AudioFlinger could not create record track, status: -1
12-08 16:03:30.460: E/AudioRecord-JNI(2176): Error creating AudioRecord instance: initialization check failed.
12-08 16:03:30.460: E/AudioRecord-Java(2176): [ android.media.AudioRecord ] Error code -20 when initializing native AudioRecord object.
12-08 16:03:31.670: W/AudioTrack(2176): obtainBuffer() track 0x2a2050 disabled, restarting
12-08 16:03:31.810: I/dalvikvm(2176): threadid=4: reacting to signal 3
12-08 16:03:31.830: D/dalvikvm(2176): threadid=1: still suspended after undo (sc=1 dc=1)
12-08 16:03:31.830: I/dalvikvm(2176): Wrote stack traces to '/data/anr/traces.txt’
12-08 16:03:32.830: W/AudioTrack(2176): obtainBuffer() track 0x2a2050 disabled, restarting
12-08 16:03:33.990: W/AudioTrack(2176): obtainBuffer() track 0x2a2050 disabled, restarting
12-08 16:03:35.150: W/AudioTrack(2176): obtainBuffer() track 0x2a2050 disabled, restarting
12-08 16:03:36.310: W/AudioTrack(2176): obtainBuffer() track 0x2a2050 disabled, restarting
12-08 16:03:37.470: W/AudioTrack(2176): obtainBuffer() track 0x2a2050 disabled, restarting
12-08 16:03:38.630: W/AudioTrack(2176): obtainBuffer() track 0x2a2050 disabled, restarting
12-08 16:03:39.790: W/AudioTrack(2176): obtainBuffer() track 0x2a2050 disabled, restarting
12-08 16:03:40.960: W/AudioTrack(2176): obtainBuffer() track 0x2a2050 disabled, restarting
12-08 16:03:42.110: W/AudioTrack(2176): obtainBuffer() track 0x2a2050 disabled, restarting
12-08 16:03:43.270: W/AudioTrack(2176): obtainBuffer() track 0x2a2050 disabled, restarting
12-08 16:03:44.430: W/AudioTrack(2176): obtainBuffer() track 0x2a2050 disabled, restarting
12-08 16:03:45.590: W/AudioTrack(2176): obtainBuffer() track 0x2a2050 disabled, restarting
12-08 16:03:46.750: W/AudioTrack(2176): obtainBuffer() track 0x2a2050 disabled, restarting
12-08 16:03:47.910: W/AudioTrack(2176): obtainBuffer() track 0x2a2050 disabled, restarting
12-08 16:03:49.080: W/AudioTrack(2176): obtainBuffer() track 0x2a2050 disabled, restarting
12-08 16:03:50.240: W/AudioTrack(2176): obtainBuffer() track 0x2a2050 disabled, restarting
12-08 16:03:51.400: W/AudioTrack(2176): obtainBuffer() track 0x2a2050 disabled, restarting
12-08 16:03:52.560: W/AudioTrack(2176): obtainBuffer() track 0x2a2050 disabled, restarting
12-08 16:03:53.720: W/AudioTrack(2176): obtainBuffer() track 0x2a2050 disabled, restarting
12-08 16:03:54.890: W/AudioTrack(2176): obtainBuffer() track 0x2a2050 disabled, restarting

Not sure if this is helpful.

I’m not much used to Eclipse.

Hard to tell, but it just looks like the audio input device isn’t opening for some reason… Not really sure how to debug that, as I don’t have that machine to try myself. Any clues you can find would be appreciated!

And BTW this topic is just becoming silly - I’m going to lock it: please start more specific threads for particular problems.