2017-07-14 68 views
1

我想在没有react-packager服务器的情况下生成未签名的app-release.apk。 我正在为此运行以下命令。gradlew assembleRelease命令在react-native android中未生成应用程序release.apk

cd react-native-project-dir

react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/

下面的命令后,我得到的命令提示符下错误这样的:

cd android && gradlew assemblerelease

app:processReleaseManifestessReleaseManifest

:app:processReleaseResources D:\ReactNativeProject\android\app\build\intermediates\res\merged\release\drawable-mdpi-v4\image_background_unique_2.jpg: error: Duplicate file. D:\ReactNativeProject\android\app\build\intermediates\res\merged\release\drawable-mdpi\image_background_unique_2.jpg: Original is here. The version qualifier may be implied. :app:processReleaseResources FAILED

FAILURE: Build failed with an exception.

  • What went wrong: Execution failed for task ':app:processReleaseResources'. com.android.ide.common.process.ProcessException: Failed to execute aapt

而且我不能够产生APP-release.apk和不理解为什么image_background_unique_2.jpg文件在不同的文件夹中添加两次。

+0

请仔细阅读[在什么情况下我想补充“紧急”或其他类似的短语我的问题,为了获得更快的答案?](// meta.stackoverflow.com/q/326569) - 总结是这不是解决志愿者问题的理想方式,而且可能对获得答案起反作用。请不要将这添加到您的问题。 – halfer

+0

您是否使用了创建React Native应用程序? –

+0

我已经使用了react-native init projectname –

回答

4

我试图根据从https://facebook.github.io/react-native/docs/signed-apk-android.html开始的步骤生成签名APK以生成已签名的apk。

我有同样的问题。当我跑./gradlew assembleRelease时,我的一些图片显示error: Duplicate fileassembleRelease似乎对drawable-文件夹造成一些问题。我从/android/app/src/main/res/删除了所有drawable-文件夹。然后我再次运行./gradlew assembleRelease。最后,它在/android/app/build/outputs/apk/上生成了一个签名的APK。

0

看起来你已经将你的应用程序捆绑在一起,并将其安装到了assembleDebug的手机中。当你决定去assembleRelease那么你应该删除drawable-文件夹。当您决定生成.apk文件时,它们会以某种方式创建问题。

+0

通过删除drawable文件夹,我在终端中获得以下内容 软件包:将软件包输出写入: 软件包:完成复制资产 失败:生成失败并出现异常。 *发生了什么问题: 无法处理传入事件'ProgressComplete'(ProgressCompleteEvent) –

+0

无法从错误中获得太多。当我再次读你的问题时,如果你想要未签名的apk,AFAIK你不需要'''assembleRelease'''。 – milkersarac

0

你尝试了一个反应原生干净的构建?尝试重置缓存然后捆绑。也许它会解决这个问题。

0

我已成功通过删除该文件夹的副本中反应来解决这个问题,原生/android/app/build/intermediates/res/merged/release/drawable-mdpi

0

的问题是,反应本地束资产在/应用程序/编译/中间体/ RE的新版本/合并/释放,而不是应用程序/ src目录/主/ RES

要解决这个问题,这就是我使用这个命令做

rm -rf android/app/src/main/res/drawable-*

现在捆绑资产:

react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/build/intermediates/res/merged/release/

注意在上面的命令的更新--assets-dest。装配APK之后就OK了!

react-native run-android --variant=release

相关问题