Just tried to update from Android Studio 1.5 to 2.0. Clicking "Release Notes" as described above leads to a website where I can download a zip file. Should I do something with that zip file? Extract it over the existing Android Studio installation or so?
Just restarting Android Studio after having clicked "Release Notes" does not make the button "Update and restart" appear on my machine. I must be missing something...
Thanks. Got a few steps farther now. Behaved a little funny - and did not replace the installation of Android studio 1.5 so I now have both versions. Still fighting, not able to debug yet, but proceeding. I will post updates when I have more news.
Well, this looks like an Android Studio and/or gradle bug, so can’t really do much about it except reiterating for the 100th time that you should not use Android Studio on Windows because so many things are not working properly. For Android development, switch to Ubuntu or a Mac.
Since Android Studio 2.1 Beta 3, there is another bug which basically breaks the clang toolchain on OS X. I submitted the bug here: https://code.google.com/p/android/issues/detail?id=207585 but could not find any workaround. It is therefore recommended that everyone compiling JUCE apps with Android Studio uses the gcc toolchain instead (it’s a build setting in the Projucer). I changed the Projucer so that gcc is now the default option.
I cannot get the latest release of jucer to build for gradle. I go through the steps to generate the wrapper (which is successful) then I run the debug build command, ./gradlew assembleDebug, and get…
In file included from /Users/mikef/Desktop/JUCE-master_4_2/examples/Demo/Builds/AndroidStudio/app/src/main/jni/juce_gui_extra.cpp:9:
In file included from /Users/mikef/Desktop/JUCE-master_4_2/examples/Demo/Builds/AndroidStudio/…/…/…/…/modules/juce_gui_extra/juce_gui_extra.cpp:40:
In file included from /Users/mikef/Desktop/JUCE-master_4_2/examples/Demo/Builds/AndroidStudio/…/…/…/…/modules/juce_gui_extra/juce_gui_extra.h:53:
In file included from /Users/mikef/Desktop/JUCE-master_4_2/examples/Demo/Builds/AndroidStudio/…/…/…/…/modules/juce_gui_basics/juce_gui_basics.h:55:
In file included from /Users/mikef/Desktop/JUCE-master_4_2/examples/Demo/Builds/AndroidStudio/…/…/…/…/modules/juce_graphics/juce_graphics.h:55:
In file included from /Users/mikef/Desktop/JUCE-master_4_2/examples/Demo/Builds/AndroidStudio/…/…/…/…/modules/juce_core/juce_core.h:169:
/Users/mikef/Desktop/JUCE-master_4_2/examples/Demo/Builds/AndroidStudio/…/…/…/…/modules/juce_core/system/juce_StandardHeader.h:53:10: fatal error: ‘memory’ file not found
Then after a few of those scrolling past clang crashes. Any ideas? I just updated to the latest everything but not being able to find memory seems odd
What OS are you on? Looks like you are using the clang toolchain? What are you trying to build? The JUCE Demo? Your own project? Do you use the default build settings that the Projucer uses, or custom ones? Did you make sure to re-build the Projucer from the newest tip?
This is the latest Juce checkout from Github setting up the Demo project using Projucer with default settings and nothing changed but my SDK location.
I did a full reinstall of the SDK/NDK/Android Studio and made progress. In Android Studio the demo project builds and fully installs and runs. However when I go to build with command line I get…
/Volumes/Android/buildbot/out_dirs/aosp-ndk-r11-release/build/tmp/build-72234/build-libc++/ndk/sources/cxx-stl/llvm-libc++/libcxx/include/atomic:922: error: undefined reference to ‘__atomic_fetch_add_4’
/Volumes/Android/buildbot/out_dirs/aosp-ndk-r11-release/build/tmp/build-72234/build-libc++/ndk/sources/cxx-stl/llvm-libc++/…/llvm-libc++abi/libcxxabi/src/cxa_handlers.cpp:112: error: undefined reference to ‘__atomic_exchange_4’
/Volumes/Android/buildbot/out_dirs/aosp-ndk-r11-release/build/tmp/build-72234/build-libc++/ndk/sources/cxx-stl/llvm-libc++/…/llvm-libc++abi/libcxxabi/src/cxa_default_handlers.cpp:106: error: undefined reference to ‘__atomic_exchange_4’
/Volumes/Android/buildbot/out_dirs/aosp-ndk-r11-release/build/tmp/build-72234/build-libc++/ndk/sources/cxx-stl/llvm-libc++/…/llvm-libc++abi/libcxxabi/src/cxa_default_handlers.cpp:117: error: undefined reference to '__atomic_exchange_4’
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
Wonder why it works in Studio but not at command prompt
Oh yeah. Now I know what’s going on. std::atomic doesn’t work/compile on pre-ARM7 (armeabi). There’s nothing we can do about that. So probably when you build from Android Studio, you have the ARM 7 architecture selected (armeabi-v7a in Build Variants). But when you build from the command line then gradle will always build all your architectures.
The fix is to remove armeabi from the architectures you are targeting.
I installed Juce today (awesome tool!) and I had issues on Android. Android Studio 2.1.3 on OS X complains Gradle sync failed: Gradle version 2.10 is required. Current version is 2.14.1.
I did not find a solution here but elsewhere, so maybe this is helpful for others:
In Projucer, create your Export target Android Studio, then in gradle version, override the default with 2.14.1, and in the line below, gradle-experimental wrapper version, use 0.7.3.
Everything else seems to be allright. I do get a warning about split APKs, but I can solve that with the Build Variant trick mentioned above.
If you’re up for using the experimental Gradle plugin for Android Studio, I’ve updated my Github repo (on the develop branch https://github.com/sureshjoshi/android-ndk-swig-example/tree/develop) to use Android Studio 1.5, and the latest experimental Gradle plugin (0.6.0-alpha3).
With this new plugin, there are a few changes required to the build.gradle files.
Please note, though, if you try to use SWIG AND the native auto-generation, the auto-generated code will be placed in the incorrect location in your SeePlusPlus_wrap.cxx file (it manually needs to be moved inside the “extern C” block.
You can read more about android ndk in android studio with swig if you like.
The Projucer project defaults will use the latest platform tools version for you. The SDK depends on the oldest phone you still want to support. If you are using midi you should use SDK version 23. But we also regularly test version 10.
Thanks @fabian! My main question was, if AndroidStudio with Juce under Windows is still discouraged (as the sticky post still says this).
I got it running meanwhile under Windows 10 with the defaults (=min. SDK 23) but with an Emulator with API 25.
With API 23 emulators (tried 2 different ones), even the hello world example under Windows crashes reproduceably (with juce A/libc: Fatal signal 11 (SIGSEGV), code 2, fault addr 0xeaeef000 in tid).
So I would say, Windows might work now, but we should use an emulator >= API25.
Does this sound reasonable?
Yes, that sounds very reasonable. In fact, I’ve always had issues with the emulator under windows - especially when trying to use opengl: any app using opengl (like JUCE) would just crash (probably the crash you are seeing). I then started using the built-in VM of Windows Pro (which supports Android) and that seemed to work a bit better. But haven’t tried newer API versions in the android emulator. Thanks for the tip.