Сбой приложения при запросе местоположения GPS (только для Android) - PullRequest
0 голосов
/ 04 октября 2018

Описание проблемы

Мое приложение вылетает при запросе местоположения GPS (ТОЛЬКО ANDROID).Диалоговое окно отображается, как и ожидалось, и когда я принимаю или отклоняю разрешение, мое приложение вылетает со следующей ошибкой:

Попытка использовать API разрешений, но не присоединена к Activity.

Но даже с ошибкой мое приложение получает разрешение, и если я снова открываю приложение, оно работает нормально.

Я думаю, что это проблема wix, потому что моя деятельность меняется с реализацией response-native-navigation.

После долгих чтений кажется, что есть интерфейс для реализации разрешений на Android, но я не могу понять, как реализовать свои действия.

Шаги по воспроизведению / фрагменты кода /Снимки экрана

Запустить приложение с вкладками:

Navigation.startTabBasedApp({
        tabs: [
            {
                label: 'Perfil',
                screen: 'tab.profile',
                icon: profileIcon, 
                navigatorStyle: {
                    navBarHidden: true,
                    navBarTextFontSize: 16
                }
            },
            {
                label: 'Paquerar',
                screen: 'tab.main',
                icon: heartIcon, 
                navigatorStyle: {
                    navBarHidden: true,
                    navBarTextFontSize: 16
                }
            },
            {
                label: 'Paqueras',
                screen: 'tab.chat',
                icon: paqueraIcon, 
                navigatorStyle: {
                    navBarHidden: true,
                    navBarTextFontSize: 16
                }
            }
        ],
        tabsStyle: { 
            tabBarButtonColor: theme.palette.grayscale[1],
            tabBarSelectedButtonColor: theme.palette.secondary,
            tabBarBackgroundColor: theme.palette.white,
            initialTabIndex: 1,
            tabBarHideShadow: false,
        },
        appStyle: {
            orientation: 'portrait',
            hideBackButtonTitle: true ,
            initialTabIndex: 1,
        }
    });

на главной вкладке, я спрашиваю разрешение на componentenetDidMount

try {
            const granted = await PermissionsAndroid.request(PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION);

            if (granted === PermissionsAndroid.RESULTS.GRANTED) {
                return true;
            }
            else{
               return false;
            }
        }catch (err) {

        }

На androidManifest

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

     <!-- for Android 5.0 (API level 21) or higher. -->
    <uses-feature android:name="android.hardware.location.gps" />
    <uses-feature android:name="android.hardware.location.network" />`

MainActivity
`package com.beachpaqueraapp;

import com.facebook.react.ReactActivity;
import com.reactnativenavigation.controllers.SplashActivity;


public class MainActivity extends SplashActivity {

    protected String getMainComponentName() {
        return "BeachPaqueraApp";
    }

}

На MainApplication

package com.beachpaqueraapp;

import android.app.Application;

import com.facebook.react.ReactApplication;
import com.reactnative.ivpusic.imagepicker.PickerPackage;
import com.bitgo.randombytes.RandomBytesPackage;
import com.BV.LinearGradient.LinearGradientPackage;
import com.oblador.vectoricons.VectorIconsPackage;
import com.reactnativenavigation.NavigationApplication;
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;

public class MainApplication extends NavigationApplication implements ReactApplication {


  protected List<ReactPackage> getPackages() {
    return Arrays.<ReactPackage>asList(
        new MainReactPackage(),
            new PickerPackage(),
            new RandomBytesPackage(),
            new LinearGradientPackage(),
            new VectorIconsPackage()
    );
  }

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

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

    @Override
    public String getJSMainModuleName() {
        return "index";
    }

}

Среда

  • React Native Navigation version: 0.56.0
  • React Native версия: 1.1.480
  • Платформа (ы) (iOS), Android или оба?): ANDROID
  • Информация об устройстве (Симулятор / Устройство?Версия ОС?Отладка / Выпуск?): ОТЛАДКА И РЕЛИЗ.Симулятор: GENYMOTION NEXUS 6 (ANDROID 8) УСТРОЙСТВО: MOTO G4 (ANDROID 8) УСТРОЙСТВО: XIAOMI REDMI ПРИМЕЧАНИЕ 5 (ANDROID 8.1)
...