# In-App Java Example

This example shows how to write custom java code in `android/app/src` and call it using `jnigen` generated bindings.

#### How to run this example:
* Run `flutter run` to run the app.

* To regenerate bindings after changing Java code, run `flutter pub run jnigen --config jnigen.yaml`. This requires at least one APK build to have been run before, so that it's possible for `jnigen` to obtain classpaths of Android Gradle libraries. Therefore, once run `flutter build apk` before generating bindings for the first time, or after a `flutter clean`.

#### General steps
These are general steps to integrate Java code into a flutter project using `jnigen`.

* Write Java code in suitable package folder, under `android/` subproject of the flutter app.

* Create A jnigen config like `jnigen.yaml` in this example.

* Generate bindings using jnigen config.

* Add an `externalNativeBuild` to gradle script (see `android/app/build.gradle` in this example).

* Add proguard rules to exclude your custom classes from tree shaking, since they are always accessed reflectively in JNI.

* Build and run the app.

