前回の続き。
次は実機で動かしたい。
有言実行。
有言実行は野望達成には逆効果だそうですが。
mrubyのbuild
Emulatorとはアーキテクチャが違うので、custom_build_config.rbに追記します。
api = 29 MRuby::CrossBuild.new('android_arm64-v8a') do |conf| conf.toolchain :android, arch: 'arm64-v8a', platform: "android-#{api}" Dir.glob("#{root}/mrbgems/mruby-*/mrbgem.rake") do |x| g = File.basename File.dirname x conf.gem :core => g unless g =~ /^mruby-(test|bin-.*)$/ end conf.cc do |cc| cc.defines << "__ANDROID_API__=#{api}" cc.flags << "--sysroot=#{ENV['ANDROID_NDK_HOME']}/sysroot" end end
buildします。
$ cp -r ~/Library/Android/sdk/ndk/21.1.6352462/sysroot/usr/include/android ~/Library/Android/sdk/ndk/21.1.6352462/platforms/android-29/arch-arm64/usr/include $ cd mruby-2.1.2 $ rake MRUBY_CONFIG=../custom_build_config.rb ANDROID_NDK_HOME=~/Library/Android/sdk/ndk/21.1.6352462/
これでPixel 5で動くlibmruby.aができました。
実機で実行
libruby.aをコピーします。 この手順も前回とほぼ同じです。
$ cd .. $ mkdir -p app/src/main/cpp/imported-lib/arm64-v8a/ $ cp mruby-2.1.2/build/android_arm64-v8a/lib/libmruby.a app/src/main/cpp/imported-lib/arm64-v8a/
あとは実行するだけです。 実機での実行方法は公式サイトに書いてあります。
結果は…
動きました!
せっかくなので何か作ってみたいけど、まずはAndroidアプリの作り方を勉強しないと…。