Описание проблемы
Мое приложение вылетает при запросе местоположения 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)