Please provide the following:
- SDK Version: expo-gl:10.1.0, “react-native-unimodules”: “^0.12.0”,
- Platforms(Android/iOS/web/all):Android
I am trying to add expo-three and expo-gl to my existing react-native app using unimodules
I followed the instructions here: Installing react-native-unimodules - Expo Documentation and was able to get it to work on ios (with a few more steps with the bridge delegate) but I cannot get it working on android.
I end up with this error
app/node_modules/expo-gl/android/src/main/java/expo/modules/gl/GLObject.java:3: error: package expo.modules.gl.cpp does not exist
If i remove expo-gl then this will all compile, so it is something to do with that package.
I have these versions:
“expo-gl”: “^10.1.0”,
“expo-gl-cpp”: “^10.0.0”,
“expo-three”: “^5.6.2”,
“react-native-unimodules”: “^0.12.0”,
buildscript {
repositories {
maven { url 'https://plugins.gradle.org/m2/'}
}
dependencies {
classpath 'gradle.plugin.com.onesignal:onesignal-gradle-plugin:[0.12.4, 0.99.99]'
}
}
apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'
apply from: '../../node_modules/react-native-unimodules/gradle.groovy'
repositories {
maven { url 'https://maven.google.com' }
}
buildscript {
repositories {
mavenCentral()
}
}
apply plugin: "com.android.application"
repositories {
google()
mavenCentral()
}
import com.android.build.OutputFile
repositories {
mavenCentral()
}
project.ext.react = [
enableHermes: false
]
apply from: "../../node_modules/react-native/react.gradle"
def enableSeparateBuildPerCPUArchitecture = false
def enableProguardInReleaseBuilds = false
def useIntlJsc = false
android {
signingConfigs {
release {
storeFile file(MYAPP_RELEASE_STORE_FILE)
storePassword MYAPP_RELEASE_STORE_PASSWORD
keyAlias MYAPP_RELEASE_KEY_ALIAS
keyPassword MYAPP_RELEASE_KEY_PASSWORD
}
}
defaultConfig {
resConfigs "en", "US" , "es"
}
compileSdkVersion rootProject.ext.compileSdkVersion
dexOptions {
javaMaxHeapSize "3g"
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
defaultConfig {
applicationId "com.myapp"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 109
versionName "1.8.12"
multiDexEnabled true
manifestPlaceholders = [onesignal_app_id: "<ID>",
onesignal_google_project_number: "REMOTE"]
ndk {
abiFilters "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
}
}
splits {
abi {
reset()
enable enableSeparateBuildPerCPUArchitecture
universalApk false // If true, also generate a universal APK
include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
}
}
buildTypes {
release {
// Caution! In production, you need to generate your own keystore file.
// see https://facebook.github.io/react-native/docs/signed-apk-android.
minifyEnabled enableProguardInReleaseBuilds
signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
}
}
packagingOptions {
pickFirst "lib/armeabi-v7a/libc++_shared.so"
pickFirst "lib/arm64-v8a/libc++_shared.so"
pickFirst "lib/x86/libc++_shared.so"
pickFirst "lib/x86_64/libc++_shared.so"
}
// applicationVariants are e.g. debug, release
applicationVariants.all { variant ->
variant.outputs.each { output ->
def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
def abi = output.getFilter(OutputFile.ABI)
if (abi != null) { // null for the universal-debug, universal-release variants
output.versionCodeOverride =
versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
}
}
}
}
dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
//noinspection GradleDynamicVersion
implementation "com.facebook.react:react-native:+" // From node_modules
implementation 'com.android.support:multidex:1.0.3'
implementation 'androidx.annotation:annotation:1.0.2'
implementation 'com.facebook.soloader:soloader:0.5.1'
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
exclude group:'com.facebook.fbjni'
}
debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
exclude group:'com.facebook.flipper'
}
debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
exclude group:'com.facebook.flipper'
}
implementation 'com.onesignal:OneSignal:[3.11.2, 3.99.99]'
implementation 'com.google.firebase:firebase-analytics:17.2.2'
implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
implementation 'com.facebook.android:facebook-android-sdk:[5,6)'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
addUnimodulesDependencies([
exclude : [
// You can exclude unneeded modules here, e.g.,
// 'unimodules-face-detector-interface',
'expo-av',
'expo-image-loader',
'expo-permissions',
'unimodules-image-loader-interface',
'unimodules-permissions-interface',
'unimodules-sensors-interface',
'unimodules-task-manager-interface',
'unimodules-face-detector-interface',
'unimodules-barcode-scanner-interface',
'unimodules-font-interface',
'unimodules-camera-interface',
// Adding a name here will also remove the package
// from auto-generated BasePackageList.java
]
])
// JSC from node_modules
if (useIntlJsc) {
implementation 'org.webkit:android-jsc-intl:+'
} else {
implementation 'org.webkit:android-jsc:+'
}
}
// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
from configurations.compile
into 'libs'
}
apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'
apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
apply plugin: 'com.google.gms.google-services'
apply plugin: 'io.fabric'