【发布时间】:2018-11-10 13:59:47
【问题描述】:
我试图从 Android 创建一个发布 apk 文件,但是当我使用 PNG 图像创建一个发布 apk 时,我收到 Duplicate Resource 错误。最初我认为这是因为我在现有项目中犯了一个错误,但是当我使用单个 Image 组件本身创建一个新项目时,我收到了 Duplicate Resource 错误。这是我遵循的步骤
- 创建应用程序 -
react-native init demo - 在项目根文件夹中创建 assets 文件夹。
- 在资产文件夹中添加
PNG图像。 - 现在使用上面的
PNG图像实现Image组件。 -
现在使用 cmd 捆绑它
react-native bundle --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/ 然后使用
Generate Signed APK从Android Studio生成发布apk。
这将引发以下错误:
[drawable-mdpi-v4/assets_mario] /Users/jeffreyrajan/Tutorials/RN/errorCheck/android/app/src/main/res/drawable-mdpi/assets_mario.png [drawable-mdpi-v4/assets_mario] /Users/jeffreyrajan/Tutorials/RN/errorCheck/android/app/build/generated/res/react/release/drawable-mdpi-v4/assets_mario.png: Error: Duplicate resources
:app:mergeReleaseResources FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:mergeReleaseResources'.
> [drawable-mdpi-v4/assets_mario] /Users/jeffreyrajan/Tutorials/RN/errorCheck/android/app/src/main/res/drawable-mdpi/assets_mario.png [drawable-mdpi-v4/assets_mario] /Users/jeffreyrajan/Tutorials/RN/errorCheck/android/app/build/generated/res/react/release/drawable-mdpi-v4/assets_mario.png: Error: Duplicate resources
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 22s
注意:当您生成没有任何 PNG 图像的 release apk 时,您不会收到任何错误,它会为您创建 release apk。
这是其他文件的代码。
App.js
import React, {Component} from 'react';
import {Platform, StyleSheet, Image, View} from 'react-native';
export default class App extends Component {
render() {
return (
<View style={styles.container}>
<Image source={require('./assets/mario.png')} />
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1
},
welcome: {
fontSize: 20,
textAlign: 'center',
margin: 10,
},
instructions: {
textAlign: 'center',
color: '#333333',
marginBottom: 5,
},
});
package.json
{
"name": "errorCheck",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node node_modules/react-native/local-cli/cli.js start",
"test": "jest"
},
"dependencies": {
"react": "16.6.0-alpha.8af6728",
"react-native": "0.57.4"
},
"devDependencies": {
"babel-jest": "23.6.0",
"jest": "23.6.0",
"metro-react-native-babel-preset": "0.49.0",
"react-test-renderer": "16.6.0-alpha.8af6728"
},
"jest": {
"preset": "react-native"
}
}
有什么解决办法吗?
更新:
这里是其他细节
classpath 'com.android.tools.build:gradle:3.1.4'
ext {
buildToolsVersion = "27.0.3"
minSdkVersion = 16
compileSdkVersion = 27
targetSdkVersion = 26
supportLibVersion = "27.1.1"
}
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
尝试使用Android Studio 3.0, 3.0.1, 3.1, 3.1.4 & 3.2
【问题讨论】:
-
你是否使用 react-native run-android 运行应用程序?
-
是的@Lucefer我没有任何问题直接使用react-native run-android运行应用程序只有当我生成发布apk时我得到了上述错误
-
你使用的android studio是什么版本?
-
它的 Android Studio 3.2.1 @FlorinDobre
-
从这里查看我的答案:stackoverflow.com/a/52767101/1979861 使用 Android studio 3.1.4 Android 3.2 在构建 RN 0.57 项目时遇到问题
标签: react-native android-gradle-plugin react-native-android