Reagierte Native App startet nicht, wenn ApplicationIdSuffix verwendet wird

Ich benutze react-native-codepush@1.16.1-beta und ein Teil des Setups beinhaltet die Angabe von applicationIdSuffix.

Ich habe dies auf eine vorherige App in der Vergangenheit ohne Probleme gesetzt (React Native 0.37). Ich habe diesen Fehler zweimal mit diesem Projekt (React Native 0.40) angetroffen. Das erste Mal habe ich mein ganzes Projekt umgebaut und es ging weg. Es fing wieder an, ohne ersichtlichen Grund zu kommen, also klonierte ich die letzte stabile Version meines Projektes in einem neuen Verzeichnis und bekam den gleichen Fehler.

Der Fehler tritt bei der Verwendung von react-native run-android . Der Fehler tritt nach einem erfolgreichen Build auf:

 Starting: Intent { cmp=com.packagename/.MainActivity } Error type 3 Error: Activity class {com.packagename/com.packagename.MainActivity} does not exist. 

Der Fehler geht weg, wenn ich applicationIdSuffix ".debug" von app/build.gradle und die App auf meinem Telefon ohne Problem startet.

Mein Telefon ist ein Nexus 6P mit Android 7.0. Ich habe nur auf einem physischen Gerät versucht, da ich keine Simulatoren eingerichtet habe.

Ich habe Triple überprüft alles gegen mein anderes Projekt und ich glaube nicht, dass es eine Konfiguration Problem ist.

  • Kein View Manager für Class RCTMap definiert
  • Holen Sie sich in reagieren native nicht mit ssl auf Android zu arbeiten
  • Debugging Reagieren Native über adb tcpip
  • WebStorm-reaktionsfähiges Debug nicht funktioniert
  • Reagieren Sie Native: Aktualisieren Sie das App-Layout, nachdem die Tastatur angezeigt wurde
  • Reagieren Sie Native - Redux: Mehrere Instanzen des gleichen Zustands in App
  • Externes HTML-Asset, das nicht von React Native in der Produktion gebaut wird, für die Verwendung von Webview
  • Reagieren-native Login mit Instagram android
  • 2 Solutions collect form web for “Reagierte Native App startet nicht, wenn ApplicationIdSuffix verwendet wird”

    Von der Link oben, ist es für eine lange Zeit (über ein Jahr) auf Github diskutiert worden, und es scheint, ein paar Patches auf ihrem Weg zu sein, so dass meine Korrektur unten kann oder auch nicht funktionieren, abhängig von der Version von react-native Sie Ich benutze.

    Hier ist, wie ich (vorübergehend) das Problem gelöst habe. Das Problem ist, dass react-native-cli versucht, adb shell am start anzurufen, adb shell am start mit dem falschen argument:

     com.packagename/com.packagename.MainActivity 

    Wenn es so etwas anrufen soll

     com.packagename.debug/com.packagename.MainActivity 

    So, bis deine Version von react-native ist, kannst du diesen Befehl verwenden (wie in diesem Code-Push-PR empfohlen:

     cd android && ./gradlew installDebug && adb -s <DEVICE_ID> shell am start -n com.packageName.debug/com.packageName.MainActivity 

    Es ist nicht eine perfekte Lösung, aber es gibt einen Patch auf Github, der im Wesentlichen die gleiche Sache (in Bezug auf ein paar Probleme und Pull Anfragen hier & hier ) macht.

    Ich habe auch keine echte Lösung gefunden. Im Moment nutze ich einen Workaround, wo ich nicht reaktionsfähige Run -… verwende … aber AndroidStudio direkt benutze.

    Ich habe einen Hinweis auf http://sex-gril.com/project/45838.html gefunden, der sagt, dass du den Paketnamen deinem defaultConfig im build.gradle hinzufügen musst.

     android { ... defaultConfig { ... resValue "string", "build_config_package", "Your App ID LIke in Manifest" } } 

    Aber das hat nicht für mich gearbeitet = /.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.