5

Chcę użyć 2 productFlavors dla mojej aplikacji na Androida: live i staging.React-produkt rodzimy Smaki (typ błędu 3: klasa aktywności nie istnieje)

W app/build.grandle zdefiniowałem je tak:

defaultConfig { 
    applicationId "com.some.id" 
    minSdkVersion 16 
    targetSdkVersion 22 
    versionCode 1 
    versionName "1.0" 
    ndk { 
     abiFilters "armeabi-v7a", "x86" 
    } 
} 
splits {...} 
buildTypes { 
    release { 
     minifyEnabled enableProguardInReleaseBuilds 
     proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" 
    } 
    debug { 
     debuggable true 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" 
    } 

    productFlavors { 
     live { 
      applicationId "com.some.id" 
     } 
     staging { 
      applicationId "com.some.id.staging" 
     } 
    } 
} 

Teraz gdy uruchamiam react-native run-android --variant=liveDebug wszystko działa dobrze, ale gdy próbuję uruchomić react-native run-android --variant=stagingDebug pojawia się błąd:

Installed on 1 device. 

BUILD SUCCESSFUL 

Total time: 11.824 secs 
Starting the app on 192.168.56.101:5555 (/usr/local/opt/android-sdk/platform-tools/adb -s 192.168.56.101:5555 shell am start -n com.somepackage/.MainActivity)... 
Starting: Intent { cmp=com.somepackage/.MainActivity } 
Error type 3 
Error: Activity class {com.somepackage/com.somepackage.MainActivity} does not exist. 

jako wyjście mówi, aplikacja została zainstalowana na urządzeniu, ale dlaczego nie istnieje MainActivity? Przypuszczam, że jest to spowodowane odmiennym ID aplikacji, chociaż jest poprawne zgodnie z this guide

Jak mogę to rozwiązać?

Z góry dziękuję!

+0

Zobacz http://stackoverflow.com/a/43736188/3163075 –

Odpowiedz