--- a/src/bin/lfortran.cpp
+++ b/src/bin/lfortran.cpp
@@ -81,10 +81,15 @@
 {
     char *env_p = std::getenv("LFORTRAN_KOKKOS_DIR");
     if (env_p) return env_p;
+#ifdef __ANDROID__
+    static std::string lfortran_kokkos_dir_default = "@TERMUX_PREFIX@";
+    return lfortran_kokkos_dir_default;
+#else
     std::cerr << "The code C++ generated by the C++ LFortran backend uses the Kokkos library" << std::endl;
     std::cerr << "(https://github.com/kokkos/kokkos). Please define the LFORTRAN_KOKKOS_DIR" << std::endl;
     std::cerr << "environment variable to point to the Kokkos installation." << std::endl;
     throw LFortran::LFortranException("LFORTRAN_KOKKOS_DIR is not defined");
+#endif
 }
 
 #ifdef HAVE_LFORTRAN_LLVM
@@ -873,7 +878,11 @@
                 out << " ";
             }
             char *env_CC = std::getenv("LFORTRAN_CC");
+#ifdef __ANDROID__
+            std::string CC="clang";
+#else
             std::string CC="gcc";
+#endif
             if (env_CC) CC = env_CC;
             std::string cmd = CC + " -c " + outfile_empty + " -o " + outfile;
             int err = system(cmd.c_str());
@@ -905,7 +914,11 @@
             out << src;
         }
 
+#ifdef __ANDROID__
+        std::string CXX = "clang++";
+#else
         std::string CXX = "g++";
+#endif
         std::string options;
         if (openmp) {
             options += "-fopenmp ";
@@ -1037,7 +1050,11 @@
         }
         return 0;
     } else if (backend == Backend::cpp) {
+#ifdef __ANDROID__
+        std::string CXX = "clang++";
+#else
         std::string CXX = "g++";
+#endif
         std::string options, post_options;
         if (static_executable) {
             options += " -static ";
@@ -1047,8 +1064,13 @@
         }
         if (kokkos) {
             std::string kokkos_dir = get_kokkos_dir();
-            post_options += kokkos_dir + "/lib/libkokkoscontainers.a "
-                + kokkos_dir + "/lib/libkokkoscore.a -ldl";
+            if (static_executable) {
+                post_options += kokkos_dir + "/lib/libkokkoscontainers.a "
+                    + kokkos_dir + "/lib/libkokkoscore.a -ldl";
+            } else {
+                post_options += kokkos_dir + "/lib/libkokkoscontainers.so "
+                    + kokkos_dir + "/lib/libkokkoscore.so -ldl";
+            }
         }
         std::string cmd = CXX + options + " -o " + outfile + " ";
         for (auto &s : infiles) {
