diff --git a/android/app/build.gradle b/android/app/build.gradle index 19d0b1b..e5b1a7d 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -1,6 +1,7 @@ apply plugin: "com.android.application" +apply from: '../../node_modules/react-native-unimodules/gradle.groovy' import com.android.build.OutputFile /** * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets @@ -185,10 +186,12 @@ dependencies { //noinspection GradleDynamicVersion implementation "com.facebook.react:react-native:+" // From node_modules implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0" + addUnimodulesDependencies() + debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") { exclude group:'com.facebook.fbjni' } debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") { diff --git a/android/app/src/main/java/com/myapp/MainApplication.java b/android/app/src/main/java/com/myapp/MainApplication.java index dc0901c..0151e90 100644 --- a/android/app/src/main/java/com/myapp/MainApplication.java +++ b/android/app/src/main/java/com/myapp/MainApplication.java @@ -1,19 +1,28 @@ package com.myapp; +// com.myapp should be your package name +import com.myapp.generated.BasePackageList; + import android.app.Application; import android.content.Context; import com.facebook.react.PackageList; import com.facebook.react.ReactApplication; import com.facebook.react.ReactInstanceManager; import com.facebook.react.ReactNativeHost; import com.facebook.react.ReactPackage; import com.facebook.soloader.SoLoader; import java.lang.reflect.InvocationTargetException; import java.util.List; +import java.util.Arrays; + +import org.unimodules.adapters.react.ModuleRegistryAdapter; +import org.unimodules.adapters.react.ReactModuleRegistryProvider; public class MainApplication extends Application implements ReactApplication { + private final ReactModuleRegistryProvider mModuleRegistryProvider = new ReactModuleRegistryProvider(new BasePackageList().getPackageList(), null); private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) { @Override public boolean getUseDeveloperSupport() { @@ -24,10 +33,16 @@ public class MainApplication extends Application implements ReactApplication { protected List getPackages() { @SuppressWarnings("UnnecessaryLocalVariable") List packages = new PackageList(this).getPackages(); // Packages that cannot be autolinked yet can be added manually here, for example: // packages.add(new MyReactNativePackage()); + + // Add unimodules + List unimodules = Arrays.asList( + new ModuleRegistryAdapter(mModuleRegistryProvider) + ); + packages.addAll(unimodules); return packages; } @Override protected String getJSMainModuleName() { diff --git a/android/build.gradle b/android/build.gradle index ed5a568..0547dbf 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,11 +1,11 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { ext { buildToolsVersion = "30.0.0" - minSdkVersion = 16 + minSdkVersion = 21 - compileSdkVersion = 29 + compileSdkVersion = 30 - targetSdkVersion = 29 + targetSdkVersion = 30 } repositories { google() diff --git a/android/settings.gradle b/android/settings.gradle index 13885ee..c673a40 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -1,3 +1,4 @@ rootProject.name = 'MyApp' +apply from: new File(["node", "--print", "require.resolve('react-native-unimodules/package.json')"].execute(null, rootDir).text.trim(), "../gradle.groovy"); includeUnimodulesProjects() -apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings) +apply from: new File(["node", "--print", "require.resolve('@react-native-community/cli-platform-android/package.json')"].execute(null, rootDir).text.trim(), "../native_modules.gradle"); applyNativeModulesSettingsGradle(settings) include ':app'