Using Manifold with Android Studio

Android Studio’s support for Java 8 features enables Android applications to work directly with Manifold. This document provides supplementary configuration information to elp you setup your Android project to use Manifold.

🛈 Note, you can also develop Android applications with IntelliJ IDEA using the Android plugin along with the Manifold plugin.

Get the Manifold plugin

Get the Manifold plugin directly from within Android Studio:
Settings | Plugins | Marketplace | search "Manifold"

You must restart Android Studio to enable the plugin.

Java 8 Source and Target Compatibility

Set your project’s source and target compatibility values to Java 8:

android {
 ...
 compileOptions {
 sourceCompatibility JavaVersion.VERSION_1_8
 targetCompatibility JavaVersion.VERSION_1_8
 }
}

Javac Plugin

Add the -Xplugin:Manifold javac argument to connect Manifold with the compiler.

// Manifold Javac plugin
getTasks().withType(JavaCompile) {
 options.compilerArgs += ['-Xplugin:Manifold']
}

Manifold Dependencies

You can conveniently copy/paste from the following list of the latest Manifold dependencies. Note the distinction between compileOnly and implementation scoping. Manifold dependencies that operate exclusively within the Java compiler are only accessible from the processor path, therefore they have no impact on your runtime distribution.

Manifold Core

compileOnly 'systems.manifold:manifold:2025年1月27日'
implementation 'systems.manifold:manifold-rt:2025年1月27日'

Manifold : Extensions

compileOnly 'systems.manifold:manifold-ext:2025年1月27日'
implementation 'systems.manifold:manifold-ext-rt:2025年1月27日'

Manifold : Props

compileOnly 'systems.manifold:manifold-props:2025年1月27日'
implementation 'systems.manifold:manifold-props-rt:2025年1月27日'

Manifold : GraphQL

compileOnly 'systems.manifold:manifold-graphql:2025年1月27日'
implementation 'systems.manifold:manifold-graphql-rt:2025年1月27日'

Manifold : JSON

compileOnly 'systems.manifold:manifold-json:2025年1月27日'
implementation 'systems.manifold:manifold-json-rt:2025年1月27日'

Manifold : XML

compileOnly 'systems.manifold:manifold-xml:2025年1月27日'
implementation 'systems.manifold:manifold-xml-rt:2025年1月27日'

Manifold : YAML

compileOnly 'systems.manifold:manifold-yaml:2025年1月27日'
implementation 'systems.manifold:manifold-yaml-rt:2025年1月27日'

Manifold : CSV

compileOnly 'systems.manifold:manifold-csv:2025年1月27日'
implementation 'systems.manifold:manifold-csb-rt:2025年1月27日'

Manifold : Properties Files

compileOnly 'systems.manifold:manifold-properties:2025年1月27日'

Manifold : Image Files

compileOnly 'systems.manifold:manifold-image:2025年1月27日'

Manifold : JavaScript

compileOnly 'systems.manifold:manifold-js:2025年1月27日'
implementation 'systems.manifold:manifold-js-rt:2025年1月27日'

Manifold : Templates

compileOnly 'systems.manifold:manifold-templates:2025年1月27日'
implementation 'systems.manifold:manifold-templates-rt:2025年1月27日'

Manifold : String Interpolation

compileOnly 'systems.manifold:manifold-strings:2025年1月27日'

Manifold : (Un)checked Exceptions

compileOnly 'systems.manifold:manifold-exceptions:2025年1月27日'

Manifold : Preprocessor

compileOnly 'systems.manifold:manifold-preprocessor:2025年1月27日'

Manifold : Preprocessor : Android Symbols

compileOnly 'systems.manifold:manifold-preprocessor-android-syms:2025年1月27日'

Manifold : Science

implementation 'systems.manifold:manifold-science:2025年1月27日'

Manifold : Collections Extension

implementation 'systems.manifold:manifold-collections:2025年1月27日'

Manifold : IO Extensions

implementation 'systems.manifold:manifold-io:2025年1月27日'

Manifold : Text Extensions

implementation 'systems.manifold:manifold-text:2025年1月27日'

Resources

If you use a type manifold that is based on resource files such as GraphQL, JSON, Templates, etc. you must place the resource files in the source directory along with your Java files. Do NOT place them in the res or assets directories.

echo method

Preprocessor and build variant symbols

If you use the preprocessor, you can directly reference Android build variant symbols with the manifold-preprocessor-android-syms dependency.

#if FLAVOR == "paid"
 @Override
 public void specialMethod(Foo foo) {
 ...
 }
#endif

build.gradle

dependencies {
 ...
 compileOnly 'systems.manifold:manifold-preprocessor:2025年1月27日'
 compileOnly 'systems.manifold:manifold-preprocessor-android-syms:2025年1月27日'
}

AltStyle によって変換されたページ (->オリジナル) /