(set-face-attribute 'default nil :font "Noto Sans Mono CJK JP")
just results in error with the backtrace below on android.

Device: Xiaomi Pad 5
MIUI Version: MIUI Pad Global 14.0.5  14.0.5.0(TKXMIXM)
Android Version: 13 TKQ1.221013.002
Emacs Binary: emacs-30.0.50-29-arm64-v8a.apk
https://sourceforge.net/projects/android-ports-for-gnu-emacs/files/
Font: ~/fonts/NotoSansMonoCJKjp-VF.ttf
https://www.google.com/get/noto/help/cjk/
Sans/Variable/TTF/Mono/NotoSansMonoCJKjp-VF.ttf

(emacs-version)
30.0.50 (build 1, aarch64-unknown-linux-android29)

Here is the backtrace.

Debugger entered--Lisp error: (wrong-type-argument char-or-string-p nil)
  internal-set-lisp-face-attribute(default :font "Noto Sans Mono CJK JP" 0)
  set-face-attribute(default nil :font "Noto Sans Mono CJK JP")
  (progn (set-face-attribute 'default nil :font "Noto Sans Mono CJK JP"))
  eval((progn (set-face-attribute 'default nil :font "Noto Sans Mono CJK JP")) t)
  elisp--eval-last-sexp(t)
  eval-last-sexp(t)
  eval-print-last-sexp(nil)
  funcall-interactively(eval-print-last-sexp nil)
  call-interactively(eval-print-last-sexp nil nil)
  command-execute(eval-print-last-sexp)