В настоящее время я разрабатываю мобильное приложение в соответствии с нативной библиотекой expo.Поскольку expo не поддерживает все сторонние библиотеки, проект пришлось отсоединить от expo.
Моя проблема возникла, когда я попытался добавить видеопроигрыватель в проект.Я подумал, что, возможно, какая-то другая библиотека столкнулась с видеоплеером, поэтому я сделал новый чистый проект только с видеоплеером.
Чистый проект имеет ту же настройку, что и основной проект, реагирующий на отдельную выставку.
Я следовал этому руководству, чтобы отсоединиться от выставки: https://docs.expo.io/versions/v28.0.0/expokit/detach/
Я следовал этому руководству, чтобы настроить response-native-unimodels: https://github.com/unimodules/react-native-unimodules
Я следовал этому руководству, чтобы добавить библиотеку видео: https://github.com/expo/expo/tree/master/packages/expo-av
Когда я пытаюсь скомпилировать код вСтудии Android Я получаю следующее сообщение об ошибке:
Мой App.js
код:
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
import { Video } from 'expo-av';
export default class App extends React.Component {
render() {
return (
<Video
source={{ uri: 'http://d23dyxeqlo5psv.cloudfront.net/big_buck_bunny.mp4' }}
rate={1.0}
volume={1.0}
isMuted={false}
resizeMode="cover"
shouldPlay
isLooping
style={{ width: 300, height: 300 }}
/>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
},
});
Мой build.gradle (Модуль: приложение): https://pastebin.com/kHTTdUrM
Мой build.gradle (проект: android): https://pastebin.com/idxF7a8j
MainApplication:
public class MainApplication extends ExpoApplication implements AppLoaderPackagesProviderInterface {
private final ReactModuleRegistryProvider mModuleRegistryProvider = new ReactModuleRegistryProvider(Arrays.<Package>asList(
new ReactAdapterPackage(),
new ConstantsPackage(),
new PermissionsPackage(),
new FileSystemPackage(),
new AVPackage()
), Arrays.<SingletonModule>asList());
@Override
public boolean isDebug() {
return BuildConfig.DEBUG;
}
// Needed for `react-native link`
public List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new ModuleRegistryAdapter(mModuleRegistryProvider)
);
}
public List getExpoPackages() {
return Arrays.asList(
new CameraPackage(),
new ConstantsPackage(),
new SensorsPackage(),
new FileSystemPackage(),
new FaceDetectorPackage(),
new GLPackage(),
new GoogleSignInPackage(),
new PermissionsPackage(),
new SMSPackage(),
new PrintPackage(),
new ConstantsPackage(),
new MediaLibraryPackage(),
new SegmentPackage(),
new FontLoaderPackage(),
new LocationPackage(),
new ContactsPackage(),
new BarCodeScannerPackage(),
new AdMobPackage(),
new LocalAuthenticationPackage(),
new LocalizationPackage(),
new AppAuthPackage(),
new TaskManagerPackage(),
new BackgroundFetchPackage()
);
}
@Override
public String gcmSenderId() {
return getString(R.string.gcm_defaultSenderId);
}
@Override
public boolean shouldUseInternetKernel() {
return BuildVariantConstants.USE_INTERNET_KERNEL;
}
public static OkHttpClient.Builder okHttpClientBuilder(OkHttpClient.Builder builder) {
// Customize/override OkHttp client here
return builder;
}
}
ОБНОВЛЕНИЕ:
Мы не нашли никакого решения этой проблемы, связанной с expo, мы полностью удалили библиотеку expo и создали новый проект, в котором используется только response-native.До сих пор не было проблем с добавлением всех библиотек, необходимых для приложения.