Compile Android Spice(aSpice)


Before following the BUILDING instruction in the repo, you need download android-ndk-r9d, or else you will get lots of error.

I was using Eclipse for android neon, android-sdk-25.

cebero is no longer needed. update 2016


1. 下载所需包并解压

链接: 密码:t4ku

demo@ubuntu:~$ tar xf Downloads/android-ndk-r9d-linux-x86_64.tar.bz2 -C /home/demo/
demo@ubuntu:~$ sudo tar xf Downloads/gstreamer-1.0-android-arm-release-1.4.5.tar.bz2 -C /opt/gstreamer

2. 修改bVNC为aSPICE
将android:label="bVNC" and android:name="bVNC"修改为android:label="aSPICE" and android:name="aSPICE" respectively.

demo@ubuntu:bVNC$ find jni/src -name \*.h -o -name \*.c -exec sed -i 's/aSPICE/bVNC/' {} \;

3. 编译
demo@ubuntu:bVNC$ /home/demo/android-ndk-r9d/ndk-build GSTREAMER_SDK_ROOT_ANDROID=/opt/gstreamer -j 4

1. Install/update sqlitegen plugin v0.1.19 into Eclipse from:

NOTE: Using an older version of the plugin may not work because
of the switch to the sqlcipher release of sqlite.

2. Clone the FreeRDP project in the parent directory of where you
cloned bVNC project:
git clone git://

Check out a commit known to work with bVNC:
git checkout stable-1.1

You should now have bVNC and FreeRDP side by side in the same

Add bVNC, ZoomerWithKeys and PubkeyGenerator from the
bVNC/eclipse_projects/ directory to Eclipse as existing Android

Add FreeRDPCore from the FreeRDP/client/Android/ directory
to Eclipse as an Existing Android Project.

3. Ensure ZoomerWithKeys, PubkeyGenerator, and FreeRDPCore projects
are called exactly as written here by right-clicking
on each of them, then selecting Refactor->Rename

3. Add the ZoomerWithKeys, PubkeyGenerator, and FreeRDPCore projects
as Library References to bVNC (right-click on the bVNC project
and select Properties -> Android -> Library). If they are not,
add them.

4. Ensure that ZoomerWithKeys, PubkeyGenerator, and FreeRDPCore
are specified as “Required projects on the build path” (right-
click on the bVNC project, and select Properties -> Java Build
Path -> Projects). If they are not, add them.

5. Ensure that ZoomerWithKeys, PubkeyGenerator, and FreeRDPCore
are referenced in Properties -> Project References (put
checkmarks on projects).

6. To build and successfully run aSPICE, you need to:
– Unpack gstreamer-sdk 1.4.5 into /opt/gstreamer. I obtained my copy from:
Newer versions either crash or have GNUtls errors that need work.

– Edit AndroidManifest.xml and change android:label=”bVNC” and android:name=”bVNC”
to android:label=”aSPICE” and android:name=”aSPICE” respectively.

– cd bVNC/eclipse_projects/bVNC

– Replace all instances of aSPICE with bVNC in native code (.c and .h files).
This requirement should go away in the future. You can use the following command:
find jni/src -name \*.h -o -name \*.c -exec sed -i ‘s/aSPICE/bVNC/’ {} \;

– ndk-build GSTREAMER_SDK_ROOT_ANDROID=/opt/gstreamer -j 4

– Unfortunately, currently ndk-build destroys other pre-existing libraries in eclipse_projects/bVNC/libs,
so after successfully building libspice and libgstreamer, one has to git checkout the files which were deleted.

– Force one boolean variable to be true. You can use the following command:
find ./ -name \*.java -exec sed -i ‘s/isSpice = .*;/isSpice = true;/’ {} \;

– You may have to select the “Android private libraries” entry in
Project Properties->Java Build Path->Order and Export
if you have it.

– Enable requesting the RECORD_AUDIO permission in AndroidManifest.xml with the following sed command:
sed -i ‘s///g’ AndroidManifest.xml

Please inform me if (6) needs to be expanded (i.e. if you needed to do
anything else in addition to the above.

2 thoughts on “Compile Android Spice(aSpice)

  1. 我把aspice需要的所有库都移植过去了,但是好像版本问题,aspice编译会出现如下问题:
    error: undefined reference to ‘celt_mode_create’