#react-native #react-native-android #create-react-native-app
#react-native #create-react-native-app
Вопрос:
Я новичок в RN. У меня проблема со сборкой релиза APK. Я делаю следующие шаги:
- установка rm -rf node_modules и npm
- Генерирующий пакет:
react-собственный пакет
--platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets dest android/app/src/main/res/
- cd Android amp; ./gradlew assembleRelease
приложение / build.gradle:
project.ext.react = [
entryFile: "index.js",
bundleInDebug: true,
bundleInRelease: true,
]
apply from: "../../node_modules/react-native/react.gradle"
....
Кажется, опция bundleInRelease не работает должным образом. Однако./ gradlew assembleDebug работает идеально! Пожалуйста, помогите!
Комментарии:
1. Вам просто нужно использовать assembleRelease. Объединение произойдет само собой.
2. Я пытался использовать assembleRelease. Но некоторые функции не работают, и когда я запускаю npm install на терминале, он работает хорошо. Однако, когда я создаю apk с помощью assembleDebug, все работает нормально.
3. Что вы подразумеваете под «Некоторые функции не работают»? Вы улучшаете свое приложение?
4. Я использовал библиотеку ‘react-native-bitcoinjs-lib’, а также, я знаю, что нет правил proguard. Когда я запускаю debug APK, все работает нормально, но в версии APK я получил следующую ошибку: «Ожидаемое свойство ‘0’ типа ECPair, получено k»
5. Я отметил, что, когда я установил bundleInDebug: false, я получил аналогичную ошибку в debug apk.
Ответ №1:
Решено!
Я использовал библиотеку ‘react-native-bitcoinjs-lib’, и дело в том, что библиотека не была полностью настроена. Согласно документации, для генерации release APK, дополнительно, мне пришлось создать файл в проекте с именем metro.config.js . И написал в нем следующий код:
module.exports = {
transformer: {
minifierConfig: {
mangle: {
keep_fnames: true
}
}
}
}
Теперь все работает нормально.