VS 2013? For Android? Really?

I’m getting more cantankerous with age, so pardon my gripes. Is there any intent to update Android build tool dependency to leave NVidia’s tools behind, and work more directly with current Android build tools?

I get it. I’m a developer of many years, so I do understand.

It just seems weird to have to install VS 2013 (or older) in order to target Android, in 2017 (took me HOURS to find where I put 2013 so I could re-install).

I used NVidia’s development tools for a short while, too. I had to drop it, the debugger was nuts. Before then, the only native debugger that worked (reliably, repeatedly) was ARM’s DS-5 CE debugger on Eclipse with ADT in Linux. Even VS 2015’s Android tools would lose connection with the debugger on Android devices (haven’t tried 2017). Android Studio, post 2.2.x, even with native code, seems to actually work, even on Windows - and I was very skeptical of it for a while.

But it’s free. Unless I mis-remember (age might do that), you can’t use free versions of VS prior to 2015 to load add-ons like NVidia, so at this point it can be really tough to GET a VS 2013 without buying it, and that might not continue to be possible.

It seems NVidia is not updating their toolset (which makes sense because VS 2015 implemented (reportedly) part of what NVidia offered - native debugging/development within VS).

I find posts HINTING that NDK 15 might be used, but the documentation still references r12b (!?!) as what is installed? There’s A LOT of improvement to the NDK since r12 (and, a lot of trouble/breaking/sweating as we moved through r13/r14).

I was looking to get into android development, but does this mean, everyone that doesnt own VS 2013 or older already has no way to get development working right now?

No, that is not true. You can create an entire UE4 project for Android with Blueprints without ever having to use Visual Studio at all. If for some reason you need to use Visual Studio, you can use Visual Studio Express.

Sam Deiter, you might skip to your quote unless you’d like to double check what I’m saying to adipFTW.

Not to contradict Sam Deiter, but this depends on what you mean by Android development.

I’m a developer first, a 3D artist and game designer second (musician 3rd). Naturally, when I read the DOCS, I’m thinking from the viewpoint of a programmer. I need to be able to add/edit code for the engine running on the device. I’ve used lots of tools targeting Android, from the first version of the NDK to date (and Xcode from 3.2.x forward). I was skeptical of Android Studio, but it has become a stable development platform for Android, finally, though sluggish.

What Sam is saying is that you can DEPLOY a build to Android without Codeworks (and therefore without VS 2013), but you must use tools in UE4 that avoid making any change to the engine runtime. Blueprint allows you to design responses and make connections between systems (say, connecting input to an action or a model to physics) without any changes to the runtime code.

If by Android development you mean you intend to use your own C++ or Java code on the Android device, instead of strictly limiting your work to Blueprints, then you will need some means of building Android targets, and likely some means of debugging those targets. This is my own intent (or at least I insist on having this option, with tools installed to do so).

After I posted this inquiry, I’ve found posts indicating we can enable Gradle (didn’t know that two days ago), and therefore MIGHT be able to use newer SDK tools (the default is to build using ANT, which was deprecated in newer Android SDK’s).

I DO NOT yet have any hint that we can, factually, use VS 2015 or 2017 for building/debugging Android targets (with due respect and deference to Sam Deiter on this point - I’m still learning).

The community edition of VS 2013 and before DO NOT allow plugins such as Codeworks (that was introduced in 2015).

So, I’m asking Sam for some pointer to documentation that says HOW we can use a CE edition of VS (2015 or 2017) for targeting Android.

We CAN use CE editions of VS 2017 (if VS2015 is also installed) to build the editor (I did that in the previous 24 hours because it is required to build x86 Android targets, despite posts indicating it wasn’t required, it was).

But this is the nature of my post.

It is confusing. I submit, contradictory, between what you’re saying (which I assume is correct, I’m learning here), and what documentation directs us to do.

I’m following the documentation, learning with introductory walk-thru’s from Unreal (not third party articles). As far as I can yet find, there is not the slightest hint that one can build an Android target without Codeworks from NVidia, which requires an older Visual Studio. That may well be a misunderstanding as I read the docs, but it seemed obvious at the time, based on what I was reading, there would be no Android targets installed on a device without Codeworks.

I would really appreciate any links or pointers to documentation on using newer Android SDK/NDK. It is possible, for example, that if UE4 left build scripts in place that I could import that definition into Android Studio for debugging.

The reason it seems we must use VS 2013, based on what I’ve read, is that Codeworks is implemented as a plugin or plugins to Visual Studio. Unreal’s docs specifically state we can’t use VS 2015, which implies we can’t use VS 2017. This makes sense because Codeworks was released years ago, does not appear to be updated, and the technical means of writing these plugins were somewhat compatible across older versions of Visual Studio (I think 2010,2012 and 2013 used the same standards), but this is not true of 2015 and 2017. Codeworks will not function in 2015 or 2017.

Further, prior to VS 2015, the community editions of Visual Studio did not accept 3rd party addons. Codeworks could not be installed on CE editions in 2013 or before.

That appears to contradict the point that CE editions of VS can be used to target Android.

We can use CE editions of Visual Studio (2015 and 2017) to build the editor. I did that yesterday because it appears to be the only way to deploy X86 Android targets. The option to build Android x86 targets isn’t available (the control is greyed out) on the UE4 editor installed from the web. That control is enabled if we build the editor from source. A post mentioned a simple edit to a configuration script, which did enable the “check” on the “build x86” option, even though the control itself wasn’t accessible, but the build failed, mentioning some missing input libraries. When the UE4 editor is built from source, those libraries are there and the x86 build works (and the control to check the Android x86 target is enabled).

You can use VS2015 or VS2017. The only reason we use CodeWorks for Android installer is it is customized for us to still install ant, jdk, ndk and the specific build tools versions with modifications to “just work” out of the box. We are moving to Gradle support over Ant at which time the latest build tools, etc installed by Android Studio would also work. The only other component installed is the Nsight debugger which is not required for compiling for Android at all; we call out to clang in the NDK toolchain to do all compiling and linking.

While we are currently providing ndk r12b and binaries compiled with it, the AndroidToolchain.cs does support r14b at this time if you want to compile from source. 4.17 does have the changes in place to recognize r15c and use clang 5.0 but I’ve seen a number of linker warnings which don’t seem to affect the final executable, but I’m not ready to call it compatible yet.

I’ve been equally confused - I really think that someone should update the docs to make the above clearer - especially that VS2015 & 17 are supported. Documentation seems to be a bit out of date in many places. I’ve been trying to get ARCore demo to work on 14.18 P4 for about 4 days now. Thought it was going to take 5mins. I actually think I’ve got some borked Win10 Pro & VS2013 (which I though I had to have installed) causing problems. I’ve just set up a brand new Win 10 install and so Chris’ reply above provides some guidance.

So this is out of date now (…1/index.html)::slight_smile:

[USER=“868”]Sam Deiter[/USER] - It would be great if there were some ARCore docs in the works with brand new prereq docs too or just update Android Quick-start that are up to date and have been tested to work. I’ve happily packaged for GearVR in the past on earlier engine version and so I am savvy with Android packaging and deployment - but somethings gone awry recently. Perhaps it’s just my fault for expecting the 4.18 P4 to work - best to always wait for release I guess. I’m following this - but trying to use the preview build instead of building from source (…etting-started). My understanding is that ARCore support was not working in 4.18 P1 & P2, but that it should work for P3 & P4.

I’d love to move all of my Android development on to an Ubuntu 16.04.03 machine - but people tell me I’ll just run in to even more problems there and that I’m asking for trouble straying from Windows as my main dev env. I’m mainly building for VR & AR on Vive, Rift, GearVR, DaydreamVR and now ARKit & ARCore.

I’d love someone to tell me that this is not the case and that Ubuntu works fine for day to day dev and packaging for Android. If I could get it running I could build a fixed Docker image that I know just works and VirtualGL & TurboVNC in to the Gnome desktop.

We test Android on Ubuntu 16.04.3 (there is a CodeWorks for Android installer 1r6u1 for Linux in the Engine/Extras/AndroidWorks). You will need to add the JDK1.8 as mentioned here: Please ignore the mentions of 1R5; I’m trying to get all the docs updated.