реагировать на сбой родного приложения для Android в режиме релиза - PullRequest
0 голосов
/ 23 января 2019

Я могу запустить приложение на эмуляторе, но не могу создать работающий APK для Android.

Я попытался запустить приложение через Android-студию и, глядя на журнал, я получаю

    Process: com.app.app, PID: 22827
    java.lang.NoSuchMethodError: no non-static method "Lcom/facebook/jni/IteratorHelper;.hasNext()Z"
        at com.facebook.react.bridge.CatalystInstanceImpl.initializeBridge(Native Method)
        at com.facebook.react.bridge.CatalystInstanceImpl.<init>(Unknown Source)
        at com.facebook.react.bridge.CatalystInstanceImpl.<init>(Unknown Source)
        at com.facebook.react.bridge.CatalystInstanceImpl$Builder.build(Unknown Source)
        at com.facebook.react.ReactInstanceManager.createReactContext(Unknown Source)
        at com.facebook.react.ReactInstanceManager.a(Unknown Source)
        at com.facebook.react.ReactInstanceManager$5.run(Unknown Source)
        at java.lang.Thread.run(Thread.java:762)
01-23 16:29:51.854 22827-22841/? E/AndroidRuntime: FATAL EXCEPTION: Thread-2
    Process: com.app.app, PID: 22827
    java.lang.NoSuchMethodError: no non-static method "Lcom/facebook/jni/IteratorHelper;.hasNext()Z"
        at com.facebook.react.bridge.CatalystInstanceImpl.initializeBridge(Native Method)
        at com.facebook.react.bridge.CatalystInstanceImpl.<init>(Unknown Source)
        at com.facebook.react.bridge.CatalystInstanceImpl.<init>(Unknown Source)
        at com.facebook.react.bridge.CatalystInstanceImpl$Builder.build(Unknown Source)
        at com.facebook.react.ReactInstanceManager.createReactContext(Unknown Source)
        at com.facebook.react.ReactInstanceManager.a(Unknown Source)
        at com.facebook.react.ReactInstanceManager$5.run(Unknown Source)
        at java.lang.Thread.run(Thread.java:762)

Понятия не имею, откуда это идет. Я запускаю реактив-native -v 0.55 с

buildscript {
    ext {
        buildToolsVersion = "27.0.3"
        minSdkVersion = 16
        compileSdkVersion = 27
        targetSdkVersion = 26
        supportLibVersion = "27.1.1"
    }
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.4'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

и следующими зависимостями

dependencies {
    compile project(':react-native-restart')
    compile project(':react-native-sentry')
    compile project(':react-native-gesture-handler')
    compile project(':react-native-version-number')
    compile project(':react-native-image-picker')
    compile project(':react-native-splash-screen')
    compile project(':react-native-vector-icons')
    compile project(':react-native-wheel-picker')
    compile fileTree(dir: "libs", include: ["*.jar"])
    compile "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
    compile "com.facebook.react:react-native:+"  // From node_modules
    implementation 'com.facebook.fresco:fresco:1.3.0'
    implementation 'com.facebook.fresco:animated-base-support:1.3.0'
    implementation 'com.facebook.fresco:animated-gif:1.3.0'
    implementation 'com.facebook.fresco:animated-webp:1.3.0'
    implementation 'com.facebook.fresco:webpsupport:1.3.0'
    implementation 'com.facebook.fresco:webpsupport:1.3.0'
}

Обновление

Настройка progaurd применяется к проекту со следующими настройками

-keep class com.facebook.imagepipeline.animated.factory.AnimatedFactoryImpl { public AnimatedFactoryImpl(com.facebook.imagepipeline.bitmaps.PlatformBitmapFactory, com.facebook.imagepipeline.core.ExecutorSupplier); }

-keepclasseswithmembernames class * {
    native <methods>;
}

-ignorewarnings

-keep class * {
    public private *;
}
...