<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">I'm stuck. It's likely because I'm not an Android developer by trade, but I have been unable to figure out why things appear to build, but the Android app is unable to find certain GStreamer plugins. <br><br>For me, I'm deploying the app to a Google Pixel 3a, Android 10.0, API 29. I do a fresh pull from the current master of this: <a href="https://github.com/centricular/gstwebrtc-demos">https://github.com/centricular/gstwebrtc-demos</a>. I've created for myself a build environment in a docker container that seems to (at least, I thought) work well for generating APKs from this project. When I interactively hop onto the container and do a "gradle build", the project builds and I get APKs. But when I deploy the resultant APK to my device and run it, I get an error saying<span style="color:rgb(36,41,46);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:14px"> "</span><span style="color:rgb(36,41,46);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:14px">Failed to parse launch: no element "ahcsrc"". Most instances of this I've seen online have to do with a poorly written Android.mk file in the src/main/jni directory. But I don't know if that's the case here since it seems to check out. <br></span></div><div dir="ltr"><span style="color:rgb(36,41,46);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:14px"><br></span></div><div><font color="#24292e" face="-apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji"><span style="font-size:14px">I suppose the only potential issue is that I'm building this on Windows, but I'm doing so under a WSL2-based docker container.</span></font><br><br><font color="#24292e" face="-apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji"><span style="font-size:14px">To reproduce what I'm doing, </span></font></div><div><font color="#24292e" face="-apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji"><span style="font-size:14px"><br></span></font></div><div><font color="#24292e" face="-apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji"><span style="font-size:14px">1) do a git pull on the above repository. \</span></font></div><div><font color="#24292e" face="-apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji"><span style="font-size:14px">2) build an image using the Dockerfile at the end of this email. </span></font></div><div><font color="#24292e" face="-apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji"><span style="font-size:14px">3) Start a container with it. I do the following: </span></font><br><br><font color="#24292e" face="-apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji"><span style="font-size:14px">docker run -v d:/repos/gstwebrtc-demos/android:/code -it --name gstreamer_builder brush/gstreamer_android /bin/bash</span></font><br><br><font color="#24292e" face="-apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji"><span style="font-size:14px">4) I then "cd" to /code once I'm in the container and type "gradle build". </span><br><br><span style="font-size:14px">The APKs that are built exhibit this issue. </span><br><br><span style="font-size:14px">Here is the Dockerfile: </span><br><br><div><span style="font-size:14px">FROM ubuntu:latest</span></div><div><span style="font-size:14px">USER root</span></div><div><span style="font-size:14px"><br></span></div><div><span style="font-size:14px"># Install Build Essentials</span></div><div><span style="font-size:14px"># Install OpenJDK-8</span></div><div><span style="font-size:14px"># Fix certificate issues</span></div><div><span style="font-size:14px">ENV DEBIAN_FRONTEND=noninteractive</span></div><div><span style="font-size:14px"><br></span></div><div><span style="font-size:14px">RUN apt-get update && \</span></div><div><span style="font-size:14px"><span style="white-space:pre">       </span>apt-get install unzip && \</span></div><div><span style="font-size:14px"><span style="white-space:pre">  </span>apt-get install build-essential -y && \</span></div><div><span style="font-size:14px"><span style="white-space:pre">     </span>apt-get install wget -y && \</span></div><div><span style="font-size:14px"><span style="white-space:pre">        </span>apt-get install file -y && \</span></div><div><span style="font-size:14px"><span style="white-space:pre">        </span>apt-get install apt-utils -y && \</span></div><div><span style="font-size:14px"><span style="white-space:pre">   </span>apt-get install vim -y && \</span></div><div><span style="font-size:14px"><span style="white-space:pre"> </span>apt-get install pkg-config -y && \</span></div><div><span style="font-size:14px"><span style="white-space:pre">  </span>apt-get install curl -y && \</span></div><div><span style="font-size:14px"><span style="white-space:pre">        </span>apt-get install -y openjdk-8-jdk && \</span></div><div><span style="font-size:14px">    apt-get install -y ant && \</span></div><div><span style="font-size:14px"><span style="white-space:pre">     </span>apt-get install ca-certificates-java && \</span></div><div><span style="font-size:14px"><span style="white-space:pre">   </span>apt-get install git -y && \</span></div><div><span style="font-size:14px">    apt-get clean && \</span></div><div><span style="font-size:14px"><span style="white-space:pre">        </span>update-ca-certificates -f;</span></div><div><span style="font-size:14px"><br></span></div><div><span style="font-size:14px"># Setup JAVA_HOME -- useful for docker commandline</span></div><div><span style="font-size:14px">ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/</span></div><div><span style="font-size:14px">RUN export JAVA_HOME</span></div><div><span style="font-size:14px"><br></span></div><div><span style="font-size:14px">ENV GRADLE_VERSION 4.6</span></div><div><span style="font-size:14px">ENV GRADLE_SDK_URL <a href="https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip">https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip</a></span></div><div><span style="font-size:14px">RUN mkdir /usr/local/gradle</span></div><div><span style="font-size:14px">RUN curl -sSL "${GRADLE_SDK_URL}" -o gradle-${GRADLE_VERSION}-bin.zip  \</span></div><div><span style="font-size:14px"><span style="white-space:pre">       </span>&& unzip gradle-${GRADLE_VERSION}-bin.zip -d /usr/local/gradle  \</span></div><div><span style="font-size:14px"><span style="white-space:pre">  </span>&& rm -rf gradle-${GRADLE_VERSION}-bin.zip</span></div><div><span style="font-size:14px">ENV GRADLE_HOME /usr/local/gradle/gradle-${GRADLE_VERSION}</span></div><div><span style="font-size:14px">ENV PATH ${GRADLE_HOME}/bin:$PATH</span></div><div><span style="font-size:14px"><br></span></div><div><span style="font-size:14px">ENV SDK_URL="<a href="https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip">https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip</a>" \</span></div><div><span style="font-size:14px">    ANDROID_HOME="/usr/local/android-sdk" \</span></div><div><span style="font-size:14px">    ANDROID_VERSION=28 \</span></div><div><span style="font-size:14px">    ANDROID_BUILD_TOOLS_VERSION=27.0.3</span></div><div><span style="font-size:14px"># Download Android SDK</span></div><div><span style="font-size:14px">RUN mkdir "$ANDROID_HOME" .android \</span></div><div><span style="font-size:14px">    && cd "$ANDROID_HOME" \</span></div><div><span style="font-size:14px">    && curl -o sdk.zip $SDK_URL \</span></div><div><span style="font-size:14px">    && unzip sdk.zip \</span></div><div><span style="font-size:14px">    && rm sdk.zip \</span></div><div><span style="font-size:14px">    && mkdir "$ANDROID_HOME/licenses" || true \</span></div><div><span style="font-size:14px">    && echo "24333f8a63b6825ea9c5514f83c2829b004d1fee" > "$ANDROID_HOME/licenses/android-sdk-license"</span></div><div><span style="font-size:14px">#    && yes | $ANDROID_HOME/tools/bin/sdkmanager --licenses</span></div><div><span style="font-size:14px"># Install Android Build Tool and Libraries</span></div><div><span style="font-size:14px">RUN $ANDROID_HOME/tools/bin/sdkmanager --update</span></div><div><span style="font-size:14px">RUN $ANDROID_HOME/tools/bin/sdkmanager "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" \</span></div><div><span style="font-size:14px">    "platforms;android-${ANDROID_VERSION}" \</span></div><div><span style="font-size:14px">    "platform-tools"</span></div><div><span style="font-size:14px"><br></span></div><div><span style="font-size:14px"># Android NDK</span></div><div><span style="font-size:14px">ENV ANDROID_NDK_VERSION r21b</span></div><div><span style="font-size:14px">ENV ANDROID_NDK_URL <a href="http://dl.google.com/android/repository/android-ndk-${ANDROID_NDK_VERSION}-linux-x86_64.zip">http://dl.google.com/android/repository/android-ndk-${ANDROID_NDK_VERSION}-linux-x86_64.zip</a></span></div><div><span style="font-size:14px">RUN curl -L "${ANDROID_NDK_URL}" -o android-ndk-${ANDROID_NDK_VERSION}-linux-x86_64.zip</span></div><div><span style="font-size:14px">RUN unzip android-ndk-${ANDROID_NDK_VERSION}-linux-x86_64.zip -d /usr/local/android-ndk-${ANDROID_NDK_VERSION}</span></div><div><span style="font-size:14px">RUN rm -rf android-ndk-${ANDROID_NDK_VERSION}-linux-x86_64.zip</span></div><div><span style="font-size:14px">ENV ANDROID_NDK_HOME /usr/local/android-ndk-${ANDROID_NDK_VERSION}</span></div><div><span style="font-size:14px">ENV PATH ${ANDROID_NDK_HOME}:$PATH</span></div><div><span style="font-size:14px">#RUN chmod u+x ${ANDROID_NDK_HOME}/ -R</span></div><div><span style="font-size:14px"><br></span></div><div><span style="font-size:14px">ENV GSTREAMER_ANDROID_VERSION 1.16.1</span></div><div><span style="font-size:14px">RUN mkdir /usr/local/gstreamer</span></div><div><span style="font-size:14px">RUN curl -L <a href="https://gstreamer.freedesktop.org/data/pkg/android/1.16.1/gstreamer-1.0-android-universal-${GSTREAMER_ANDROID_VERSION}.tar.xz">https://gstreamer.freedesktop.org/data/pkg/android/1.16.1/gstreamer-1.0-android-universal-${GSTREAMER_ANDROID_VERSION}.tar.xz</a> -o /usr/local/gstreamer/gstreamer-1.0-android-universal-${GSTREAMER_ANDROID_VERSION}.tar.xz</span></div><div><span style="font-size:14px">RUN tar -xf /usr/local/gstreamer/gstreamer-1.0-android-universal-${GSTREAMER_ANDROID_VERSION}.tar.xz -C /usr/local/gstreamer/</span></div><div><span style="font-size:14px">RUN rm -fr /usr/local/gstreamer/gstreamer-1.0-android-universal-${GSTREAMER_ANDROID_VERSION}.tar.xz</span></div><div><span style="font-size:14px">ENV GSTREAMER_ROOT_ANDROID /usr/local/gstreamer/</span></div><div><span style="font-size:14px">ENV PATH ${GSTREAMER_ROOT_ANDROID}:$PATH</span></div><div><span style="font-size:14px">ENV PATH /usr/local/gstreamer/armv7/include/gstreamer-1.0:$PATH</span></div><div style="font-size:14px"><br></div></font></div></div></div></div></div>