mirror of
https://github.com/emilk/egui.git
synced 2026-06-26 22:53:14 -04:00
Android example: document pre-requisites and fix code for rust 1.92.0 (#8122)
* [x] I have followed the instructions in the PR template ``` + echo 'All checks passed.' All checks passed. ``` I had to update `.png`'s for tests to pass, but I guess it's specific to my laptop. --------- Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
This commit is contained in:
committed by
GitHub
parent
8a0855bb02
commit
fe8b1edfc6
@@ -1,24 +1,31 @@
|
|||||||
Hello world example for Android.
|
# Hello world example for Android.
|
||||||
|
|
||||||
Use `cargo-apk` to build and run. Requires a patch to workaround [an upstream bug](https://github.com/rust-mobile/cargo-subcommand/issues/29).
|
## Desktop pre-requisites
|
||||||
|
|
||||||
One-time setup:
|
Android application require you to have toolchains and Android SDK installed:
|
||||||
|
|
||||||
```sh
|
1. `rustup target add armv7-linux-androideabi aarch64-linux-android` - install targets for android
|
||||||
cargo install \
|
2. Set environment variables (these variables are required each time for `cargo apk`):
|
||||||
--git https://github.com/parasyte/cargo-apk.git \
|
```sh
|
||||||
--rev 282639508eeed7d73f2e1eaeea042da2716436d5 \
|
export ANDROID_HOME="$HOME/tools/android"
|
||||||
cargo-apk
|
export ANDROID_NDK_ROOT="${ANDROID_HOME}/ndk/29.0.14206865"
|
||||||
```
|
export PATH="$PATH:${ANDROID_NDK_ROOT}:${ANDROID_HOME}/build-tools/${BUILDTOOLS_VERSION}:${ANDROID_HOME}/cmdline-tools/bin"
|
||||||
|
```
|
||||||
|
3. Install command line tools:
|
||||||
|
```sh
|
||||||
|
mkdir -p "${ANDROID_HOME}/cmdline-tools"
|
||||||
|
curl -sLo /tmp/clt.zip https://dl.google.com/android/repository/commandlinetools-linux-14742923_latest.zip
|
||||||
|
unzip -d "${ANDROID_HOME}" /tmp/clt.zip
|
||||||
|
```
|
||||||
|
4. Install SDK components: `sdkmanager --sdk_root="${ANDROID_HOME}" --install "build-tools;36.0.0" "ndk;29.0.14206865" "platforms;android-35"`
|
||||||
|
> You may need to change SDK versions
|
||||||
|
5. Install cargo-apk: `cargo install --git https://github.com/parasyte/cargo-apk.git --rev 282639508eeed7d73f2e1eaeea042da2716436d5 cargo-apk`
|
||||||
|
> There was a [bug](https://github.com/rust-mobile/cargo-subcommand/issues/29) in the upstream, so the above installs a patched version.
|
||||||
|
|
||||||
Build and run:
|
## Build & run
|
||||||
|
|
||||||
```sh
|
Use `cargo-apk` to build and run:
|
||||||
# Run on android
|
1. On android: `cargo apk run -p hello_android --lib`
|
||||||
cargo apk run -p hello_android --lib
|
2. On desktop: `cargo run -p hello_android`
|
||||||
|
|
||||||
# Run on your desktop
|
|
||||||
cargo run -p hello_android
|
|
||||||
```
|
|
||||||
|
|
||||||

|

|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
use eframe::{CreationContext, egui};
|
use eframe::{CreationContext, egui};
|
||||||
|
|
||||||
#[cfg(target_os = "android")]
|
#[cfg(target_os = "android")]
|
||||||
#[no_mangle]
|
#[unsafe(no_mangle)]
|
||||||
fn android_main(app: winit::platform::android::activity::AndroidApp) {
|
fn android_main(app: winit::platform::android::activity::AndroidApp) {
|
||||||
// Log to android output
|
// Log to android output
|
||||||
android_logger::init_once(
|
android_logger::init_once(
|
||||||
|
|||||||
Reference in New Issue
Block a user