React-native-navigation: v2 Can't get to work, NullPointerException build time

Created on 3 Sep 2018  路  6Comments  路  Source: wix/react-native-navigation

Issue Description

After library linking, iOS is working great, Android don't build.

Steps to Reproduce / Code Snippets / Screenshots

All details about build here:
https://scans.gradle.com/s/7dvloyqphj5gu


Environment

  • React Native Navigation version: 2.0.2515
  • React Native version: 0.56
  • Platform(s) (iOS, Android, or both?): iOS Working, Android issue
  • Device info (Simulator/Device? OS version? Debug/Release?): Nothing. Can't build debug
questiostack overflow

Most helpful comment

I had the same problem because of my Java version (9.0.4).
I fixed it by installing version 8:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
And run this:
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)

Check: https://stackoverflow.com/a/46517346/6919718

All 6 comments

Not sure if this would help but if you are migrating an existing project over, check to make sure that all the secrets/setting file that are gitignored are in the right places.

@ywongweb thanks, but this is the first time we try this project with RNN

I have also same issue with react native navigation v2 in android only in ios its working

"react": "16.5.0",
"react-native": "0.56.0",
"react-native-navigation": "^2.0.2571"

mac os 10.12.6

code is here
in build.gradle
buildscript {
ext {
buildToolsVersion = "27.0.3"
minSdkVersion = 19
compileSdkVersion = 27
targetSdkVersion = 26
supportLibVersion = "27.1.1"
}
repositories {
google()
mavenLocal()
mavenCentral()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.4'
}
}
allprojects {
repositories {
google()
mavenCentral()
mavenLocal()
jcenter()
maven {
url "$rootDir/../node_modules/react-native/android"
}
maven { url 'https://jitpack.io' }

}

}

task wrapper(type: Wrapper) {
gradleVersion = '4.4'
distributionUrl = distributionUrl.replace("bin", "all")
}

in android/app/build.gradle

apply plugin: "com.android.application"
import com.android.build.OutputFile
project.ext.react = [
entryFile: "index.js"
]
apply from: "../../node_modules/react-native/react.gradle"
def enableSeparateBuildPerCPUArchitecture = false
def enableProguardInReleaseBuilds = false

android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion

defaultConfig {
    applicationId "com.practicereact"
    minSdkVersion rootProject.ext.minSdkVersion
    targetSdkVersion rootProject.ext.targetSdkVersion
    missingDimensionStrategy "RNN.reactNativeVersion", "reactNative56"
    versionCode 1
    versionName "1.0"
    ndk {
        abiFilters "armeabi-v7a", "x86"
    }
}


compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}


splits {
    abi {
        reset()
        enable enableSeparateBuildPerCPUArchitecture
        universalApk false  
        include "armeabi-v7a", "x86"
    }
}
buildTypes {
    release {
        minifyEnabled enableProguardInReleaseBuilds
        proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
    }
}
applicationVariants.all { variant ->
    variant.outputs.each { output ->
        def versionCodes = ["armeabi-v7a":1, "x86":2]
        def abi = output.getFilter(OutputFile.ABI)
        if (abi != null) { 
            output.versionCodeOverride =
                    versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
        }
    }
}



configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
    def requested = details.requested
    if (requested.group == 'com.android.support' && requested.name != 'multidex') {
        details.useVersion "${rootProject.ext.supportLibVersion}"
    }
}

}
}

subprojects { subproject ->
afterEvaluate {
if ((subproject.plugins.hasPlugin('android') || subproject.plugins.hasPlugin('android-library'))) {
android {
variantFilter { variant ->
def names = variant.flavors*.name
if (names.contains("reactNative51") || names.contains("reactNative55")) {
setIgnore(true)
}
}
}
}
}
}

dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
implementation 'com.android.support:design:25.4.0'
implementation "com.facebook.react:react-native:+"
implementation project(':react-native-navigation')
}

task copyDownloadableDepsToLibs(type: Copy) {
from configurations.compile
into 'libs'
}

in settings.gradle

include ':react-native-navigation'
project(':react-native-navigation').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-navigation/lib/android/app/')

in mainActivity.java

package com.practicereact;
import com.reactnativenavigation.NavigationActivity;
public class MainActivity extends NavigationActivity {

}

in MainApplication.java

package com.practicereact;
import android.app.Application;
import com.facebook.react.ReactApplication;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.react.shell.MainReactPackage;
import com.facebook.soloader.SoLoader;
import java.util.Arrays;
import java.util.List;
import com.reactnativenavigation.NavigationApplication;
import com.reactnativenavigation.react.NavigationReactNativeHost;
import com.reactnativenavigation.react.ReactGateway;
public class MainApplication extends NavigationApplication {
@Override
protected ReactGateway createReactGateway() {
ReactNativeHost host = new NavigationReactNativeHost(this, isDebug(), createAdditionalReactPackages()) {
@Override
protected String getJSMainModuleName() {
return "index";
}
};
return new ReactGateway(this, isDebug(), host);
}

@Override
public boolean isDebug() {
    return BuildConfig.DEBUG;
}

protected List<ReactPackage> getPackages() {
   return Arrays.<ReactPackage>asList(
        // eg. new VectorIconsPackage()
    );
}

@Override
public List<ReactPackage> createAdditionalReactPackages() {
   return getPackages();
}

}

BUILD FAILED in 1s
Could not install the app on the device, read the error above for details.
Make sure you have an Android emulator running or a device connected and have
set up your Android development environment:
https://facebook.github.io/react-native/docs/getting-started.html
Mac-OSX-195:practicereact osx$ react-native run-android
Scanning folders for symlinks in /Users/osx/practicereact/node_modules (14ms)
JS server already running.
Building and installing the app on the device (cd android && ./gradlew installDebug)...

Configure project :app
WARNING: The option 'android.enableAapt2' is deprecated and should not be used anymore.
Use 'android.enableAapt2=true' to remove this warning.
It will be removed at the end of 2018..

FAILURE: Build failed with an exception.

  • What went wrong:
    A problem occurred configuring project ':app'.

    java.lang.NullPointerException (no error message)

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • Get more help at https://help.gradle.org

this is the issue

I had the same problem because of my Java version (9.0.4).
I fixed it by installing version 8:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
And run this:
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)

Check: https://stackoverflow.com/a/46517346/6919718

We use the issue tracker exclusively for bug reports and feature requests. This issue appears to be a general usage or support question. Instead, please ask a question on Stack Overflow with the react-native-navigation tag.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

viper4595 picture viper4595  路  3Comments

edcs picture edcs  路  3Comments

switchtrue picture switchtrue  路  3Comments

yedidyak picture yedidyak  路  3Comments

kiroukou picture kiroukou  路  3Comments