2016-08-02 18 views
1

Ich habe ein Android NDK-basiertes Projekt, das das experimentelle Gradle-Plugin verwendet. Ich versuche, React Native und das React Native Navigation (RNN) Modul zum Projekt hinzuzufügenModul App-Abhängigkeit führt zu "Fehler: Paket x existiert nicht" mit experimentellem Gradle-Plugin

Das Beispielprojekt, das mit RNN kommt, baut und läuft wie erwartet. Um jedoch mit meinem Projekt zu machen RNN kompatibel musste ich seine build.gradle Datei aktualisieren mit dem experimentellen gradle Plugin zu arbeiten: https://github.com/adamski/react-native-navigation/commit/0a848f574cedae83bf8961bd1fafe8a42e4257cc

Ich schlagen die folgenden Buildfehler:

Error:(64, 1) error: package com.reactnativenavigation.activities does not exist 

Ich habe SO surften und das Internet für eine Lösung. Ich kann das Projekt zu sehen und navigieren sie in AS:

Android Studio RNN module

jedoch auf die Hauptaktivität Java-Klasse auf die Navigation, zeigt es rote Linien, wo es nicht um die Abhängigkeit finden, auch wenn es die Möglichkeit bietet, wenn die einführende Dateien zum Hauptprojekt (?).

Mein settings.gradle:

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

Das Projekt build.gradle:

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle-experimental:0.7.0-rc1' 
    } 
} 
allprojects { 
    repositories { 
     jcenter() 
     maven { // All of React Native (JS, Android binaries) is installed from npm 
      url "$rootDir/../../node_modules/react-native/android" // node_modules is two levels up from the AndroidStudio project folder 
     } 
    } 
} 

Die App build.gradle:

apply plugin: 'com.android.model.application' 
model { 
    android { 
     compileSdkVersion = 23 
     buildToolsVersion = "23.0.2" 
     defaultConfig.with { 
      applicationId = "com.company.myapp" 
      minSdkVersion.apiLevel = 16 
      targetSdkVersion.apiLevel = 22 
     } 
    } 
    android.ndk { 
     moduleName = "juce_jni" 
     toolchain = "clang" 
     stl = "c++_static" 
     cppFlags.add("-fsigned-char") 
     cppFlags.add("-fexceptions") 
     cppFlags.add("-frtti") 
     cppFlags.add("-std=c++11") 
     cppFlags.add("-DJUCE_ENABLE_LIVE_CONSTANT_EDITOR=0") 
     cppFlags.add("-DJUCER_ANDROIDSTUDIO_4330F05B=1") 
     cppFlags.add("-DJUCE_APP_VERSION=0.4.0") 
     cppFlags.add("-DJUCE_APP_VERSION_HEX=0x400") 
     cppFlags.add("-I${project.rootDir}/../../Fonts".toString()) 
     cppFlags.add("-I${project.rootDir}/../../Source".toString()) 
     cppFlags.add("-I${project.rootDir}/../iOS".toString()) 
     cppFlags.add("-I${project.rootDir}/../../../../juce_modules/adamski/PitchDetector/modules".toString()) 
     cppFlags.add("-I${project.rootDir}/../../Source/LookAndFeel".toString()) 
     cppFlags.add("-I${project.rootDir}/../../Source/Synth".toString()) 
     cppFlags.add("-I${project.rootDir}/../../Source/UI".toString()) 
     ldLibs.add("android") 
     ldLibs.add("EGL") 
     ldLibs.add("GLESv2") 
     ldLibs.add("log") 
     platformVersion = 15 
    } 
    android.sources { 
     main { 
      jni { 
       source { 
        exclude "**/JuceModules/" 
       } 
      } 
     } 
    } 
    android.buildTypes { 
     debug { 
      ndk.with { 
       debuggable = true 
       cppFlags.add("-g") 
       cppFlags.add("-DDEBUG=1") 
       cppFlags.add("-D_DEBUG=1") 
       cppFlags.add("-O0") 
       cppFlags.add("-I${project.rootDir}/../../JuceLibraryCode".toString()) 
       cppFlags.add("-I${project.rootDir}/../../../../JUCE/modules".toString()) 
       cppFlags.add("-I${project.rootDir}/../../../../juce_modules/adamski".toString()) 
       cppFlags.add("-DJUCE_ANDROID=1") 
       cppFlags.add("-DJUCE_ANDROID_API_VERSION=21") 
       cppFlags.add("-DJUCE_ANDROID_ACTIVITY_CLASSNAME=com_company_myapp_MyApp") 
       cppFlags.add("-DJUCE_ANDROID_ACTIVITY_CLASSPATH=\"com/company/myapp/MyApp\"") 
       cppFlags.add("-DJUCE_ENABLE_LIVE_CONSTANT_EDITOR=0") 
      } 
     } 
     release { 
      signingConfig = $("android.signingConfigs.releaseConfig") 
      ndk.with { 
       cppFlags.add("-DNDEBUG=1") 
       cppFlags.add("-O3") 
       cppFlags.add("-I${project.rootDir}/../../JuceLibraryCode".toString()) 
       cppFlags.add("-I${project.rootDir}/../../../../JUCE/modules".toString()) 
       cppFlags.add("-I${project.rootDir}/../../../../juce_modules/adamski".toString()) 
       cppFlags.add("-DJUCE_ANDROID=1") 
       cppFlags.add("-DJUCE_ANDROID_API_VERSION=21") 
       cppFlags.add("-DJUCE_ANDROID_ACTIVITY_CLASSNAME=com_company_myapp_MyApp") 
       cppFlags.add("-DJUCE_ANDROID_ACTIVITY_CLASSPATH=\"com/company/myapp/MyApp\"") 
       cppFlags.add("-DJUCE_ENABLE_LIVE_CONSTANT_EDITOR=0") 
      } 
     } 
    } 
    android.signingConfigs { 
     create("releaseConfig") { 
      storeFile = new File("/Users/adamelemental/.android/debug.keystore") 
      storePassword = "android" 
      keyAlias = "androiddebugkey" 
      keyPassword = "android" 
      storeType = "jks" 
     } 
    } 
    android.productFlavors { 
     create("armeabi") { 
      ndk.abiFilters.add("armeabi") 
     } 
     create("armeabi-v7a") { 
      ndk.abiFilters.add("armeabi-v7a") 
     } 
     create("x86") { 
      ndk.abiFilters.add("x86") 
     } 
    } 
} 
dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    compile 'com.android.support:appcompat-v7:23.0.1' 
    compile 'com.android.support:support-v4:+' 
    compile 'com.facebook.react:react-native:+' 

    // The following do not work with the experimental gradle plugin: 
    // debugCompile project(path: ':react-native-navigation', configuration: 'libraryDebug') 
    // releaseCompile project(path: ':react-native-navigation', configuration: 'libraryRelease') 

    compile project (':react-native-navigation') 
} 

Antwort

2

Löschen des productFlavors Teil RNN der build.gradle bekam Vergangenheit dieses Problem.