Version 47 of Build Androwish

Updated 2016-09-27 06:17:25 by MG

This page was moved to [L1 ].

Here, it will be deleted soon.

I hope this is ok for anybody. I only want to maintain one page...

Thank you,

Harald


MG 27-09-2016 I am, once again, trying my clueless hand at building AndroWish on Windows. For anyone else trying (and for me in the future, as I'll forget in 10 minutes;), I'm going to try and document everything I'm doing, up to wherever I get stuck (or, more optimistically, where it works;). I'm following the link above, and muddling through with further info from a couple of other sources.

I'm putting everything in E:\android-build\ for simplicity, and the dir names for the various downloads reflect the latest versions as of today

So, here's what I've done so far:

  1. Download the Android SDK. From https://developer.android.com/studio/index.html download the latest version under "Get just the command line tools" - currently android-sdk_r24.4.1-windows.zip
  2. Unpack the SDK (E:\android-build\android-sdk-windows), run "SDK Manager.exe", and click Install Packages with the selected items. This'll take a while.
  3. Download the NDK from https://developer.android.com/ndk/downloads/index.html (Windows 32- or 64-bit, as appropriate), extract to E:\android-build\android-ndk-r12b
  4. Download the latest Apache Ant .zip archive from http://ant.apache.org/bindownload.cgi and extract to E:\android-build\apache-ant-1.9.7
  5. Download AndroWish source from http://www.androwish.org/download/index.html and extract to E:\android-build\androwish-a05b615f58
  6. Add the following to your path: E:\android-build\apache-ant-1.9.7\bin;E:\android-build\android-sdk-windows\tools;E:\android-build\android-ndk-r12b
  7. Start -> Run, type "cmd.exe" to open the Command Prompt. In the prompt, type "e:" to switch to the E drive (been so long since I've used the command prompt much that I had to look this up, since "cd" won't do it;) then "cd e:\android-build\androwish-a05b615f58". Using Tab for path completion is your friend (androwish-<tab>).
  8. As per the docs above, I tried "android update project", and got an error that said I needed to include a path. "android update project --path e:\android-build\androwish-a05b615f58" then gave me an error that there was no target specified. Some Googling gave the solution:
  9. Type "android list targets". It'll list at least two with the default SDKs you installed earlier via "SDK Manager.exe" - the latest Android API (v24 for me), and the same again with some Google APIs (Google USB Driver). The first line for each listed is: id: X, or "YYYYY". You can specify either X or YYYYY for --target. For me, that's either "1" or "android-24". So:
  10. android update project --path e:\android-build\androwish-a05b615f58 --target 1
  11. Run "ant debug". And this is where I hit a problem. It fails with the following error:
e:\android-build\androwish-a05b615f58>ant debug
Unable to locate tools.jar. Expected to find it in C:\Program Files (x86)\Java\j
re1.8.0_101\lib\tools.jar
Buildfile: e:\android-build\androwish-a05b615f58\build.xml

-set-mode-check:

-set-debug-files:

-check-env:
 [checkenv] Android SDK Tools Revision 25.2.2
 [checkenv] Installed at E:\android-build\android-sdk-windows

-setup:
     [echo] Project Name: AndroWish
  [gettype] Project Type: Application

-set-debug-mode:

-debug-obfuscation-check:

-pre-build-links:

-pre-build-copies:

ndk-build:

BUILD FAILED
e:\android-build\androwish-a05b615f58\custom_rules.xml:82: Execute failed: java.io.IOException: Cannot run program "ndk-build" (in directory "e:\android-build\androwish-a05b615f58"): CreateProcess error=2, The system cannot find the file specified
        at java.lang.ProcessBuilder.start(Unknown Source)
        at java.lang.Runtime.exec(Unknown Source)
        at org.apache.tools.ant.taskdefs.launcher.Java13CommandLauncher.exec(Java13CommandLauncher.java:58)
        at org.apache.tools.ant.taskdefs.Execute.launch(Execute.java:426)
        at org.apache.tools.ant.taskdefs.Execute.execute(Execute.java:440)
        at org.apache.tools.ant.taskdefs.ExecTask.runExecute(ExecTask.java:629)
        at org.apache.tools.ant.taskdefs.ExecTask.runExec(ExecTask.java:670)
        at org.apache.tools.ant.taskdefs.ExecTask.execute(ExecTask.java:496)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293)
        at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:435)
        at org.apache.tools.ant.Target.performTasks(Target.java:456)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1405)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1376)
        at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1260)
        at org.apache.tools.ant.Main.runBuild(Main.java:854)
        at org.apache.tools.ant.Main.startAnt(Main.java:236)
        at org.apache.tools.ant.launch.Launcher.run(Launcher.java:285)
        at org.apache.tools.ant.launch.Launcher.main(Launcher.java:112)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
        at java.lang.ProcessImpl.create(Native Method)
        at java.lang.ProcessImpl.<init>(Unknown Source)
        at java.lang.ProcessImpl.start(Unknown Source)
        ... 24 more

Total time: 0 seconds

There are ndk-build.cmd scripts in both E:\android-build\android-ndk-r12b (which is in my path) and E:\android-build\android-ndk-r12b\build (the former simply runs the latter). I've tried putting the \build dir in my path instead/as well, but get the same result.

I then tried running "ndk-build" manually, which gave me separate errors:

e:\android-build\androwish-a05b615f58>ndk-build
jni/tcl-pkgs/itcl4.0.5/Android.mk:13: jni/tcl-pkgs/itcl4.0.5/../../tcl-config.mk: No such file or directory
jni/tcl-pkgs/sqlite3.14.1/Android.mk:13: jni/tcl-pkgs/sqlite3.14.1/../../tcl-config.mk: No such file or directory
jni/tcl-pkgs/tdbc1.0.4/Android.mk:13: jni/tcl-pkgs/tdbc1.0.4/../../tcl-config.mk: No such file or directory
jni/tcl-pkgs/thread2.8.0/Android.mk:13: jni/tcl-pkgs/thread2.8.0/../../tcl-config.mk: No such file or directory
jni/tcl-pkgs/itcl4.0.5/Android.mk:13: jni/tcl-pkgs/itcl4.0.5/../../tcl-config.mk: No such file or directory
jni/tcl-pkgs/sqlite3.14.1/Android.mk:13: jni/tcl-pkgs/sqlite3.14.1/../../tcl-config.mk: No such file or directory
jni/tcl-pkgs/tdbc1.0.4/Android.mk:13: jni/tcl-pkgs/tdbc1.0.4/../../tcl-config.mk: No such file or directory
jni/tcl-pkgs/thread2.8.0/Android.mk:13: jni/tcl-pkgs/thread2.8.0/../../tcl-config.mk: No such file or directory
make: *** No rule to make target `jni/tcl-pkgs/thread2.8.0/../../tcl-config.mk'.
  Stop.

Hrm. That only happens for a few packages, and they're all in the tcl-pkgs error. That seems curious. Opening up those Android.mk files, they all have the lines

tcl_path := $(LOCAL_PATH)/../..

include $(tcl_path)/tcl-config.mk

LOCAL_ADDITIONAL_DEPENDENCIES += $(tcl_path)/tcl-config.mk

which is the wrong path. Changing all of those tcl_path lines to

tcl_path := $(LOCAL_PATH)/../../tcl

gets around that error, and it starts building all the packages. Guessing this is an AndroWish issue in the current version?

After a lot of successful builds along the lines of the first few shown below, it then errors:

[armeabi] Compile thumb  : crypto_tls <= v3_pku.c
[armeabi] Compile thumb  : crypto_tls <= v3_pmaps.c
[armeabi] Compile thumb  : crypto_tls <= v3_prn.c
[armeabi] Compile thumb  : crypto_tls <= v3_purp.c
[armeabi] Compile thumb  : crypto_tls <= v3_skey.c
[armeabi] Compile thumb  : crypto_tls <= v3_sxnet.c
[armeabi] Compile thumb  : crypto_tls <= v3_utl.c
[armeabi] Compile thumb  : crypto_tls <= v3err.c
[armeabi] SharedLibrary  : libcrypto_tls.so
arm-linux-androideabi-g++: error: CreateProcess: No such file or directory
make: *** [obj/local/armeabi/libcrypto_tls.so] Error 1

And at this point I'm at a loss again. Anyone with more experience have any ideas?