- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
突然,我们的 React-Native 应用程序的 Android 部分出现了构建错误,该应用程序在 iOS 上完美构建,并且已经在商店(AppStore 和 PlayStore)上存在了好几个月了。前几天我可以完美构建android版本,但现在出现这个错误:
:app:generateReleaseSources
:app:processReleaseJavaRes UP-TO-DATE
:app:compileReleaseJavaWithJavac
:app:compileReleaseNdk UP-TO-DATE
:app:compileReleaseSources
:app:lintVitalRelease
:app:preDexRelease UP-TO-DATE
:app:dexRelease
Unknown source file : UNEXPECTED TOP-LEVEL EXCEPTION:
Unknown source file : com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/internal/zzpq;
Unknown source file : at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)
Unknown source file : at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)
Unknown source file : at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)
Unknown source file : at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
Unknown source file : at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
Unknown source file : at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:502)
Unknown source file : at com.android.dx.command.dexer.Main.runMonoDex(Main.java:334)
Unknown source file : at com.android.dx.command.dexer.Main.run(Main.java:277)
Unknown source file : at com.android.dx.command.dexer.Main.main(Main.java:245)
Unknown source file : at com.android.dx.command.Main.main(Main.java:106)
:app:dexRelease FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:dexRelease'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/bin/java'' finished with non-zero exit value 2
经过谷歌搜索一段时间后,我发现第三方库可能会发生这种情况。所以我停用了过去两周添加的所有库。错误仍然存在。
是否有可能调试此错误以找出根本原因?
<小时/>这是 build.gradle:
apply plugin: "com.android.application"
import com.android.build.OutputFile
/**
* The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets
* and bundleReleaseJsAndAssets).
* These basically call `react-native bundle` with the correct arguments during the Android build
* cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the
* bundle directly from the development server. Below you can see all the possible configurations
* and their defaults. If you decide to add a configuration block, make sure to add it before the
* `apply from: "../../node_modules/react-native/react.gradle"` line.
*
* project.ext.react = [
* // the name of the generated asset file containing your JS bundle
* bundleAssetName: "index.android.bundle",
*
* // the entry file for bundle generation
* entryFile: "index.android.js",
*
* // whether to bundle JS and assets in debug mode
* bundleInDebug: false,
*
* // whether to bundle JS and assets in release mode
* bundleInRelease: true,
*
* // whether to bundle JS and assets in another build variant (if configured).
* // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants
* // The configuration property can be in the following formats
* // 'bundleIn${productFlavor}${buildType}'
* // 'bundleIn${buildType}'
* // bundleInFreeDebug: true,
* // bundleInPaidRelease: true,
* // bundleInBeta: true,
*
* // the root of your project, i.e. where "package.json" lives
* root: "../../",
*
* // where to put the JS bundle asset in debug mode
* jsBundleDirDebug: "$buildDir/intermediates/assets/debug",
*
* // where to put the JS bundle asset in release mode
* jsBundleDirRelease: "$buildDir/intermediates/assets/release",
*
* // where to put drawable resources / React Native assets, e.g. the ones you use via
* // require('./image.png')), in debug mode
* resourcesDirDebug: "$buildDir/intermediates/res/merged/debug",
*
* // where to put drawable resources / React Native assets, e.g. the ones you use via
* // require('./image.png')), in release mode
* resourcesDirRelease: "$buildDir/intermediates/res/merged/release",
*
* // by default the gradle tasks are skipped if none of the JS files or assets change; this means
* // that we don't look at files in android/ or ios/ to determine whether the tasks are up to
* // date; if you have any other folders that you want to ignore for performance reasons (gradle
* // indexes the entire tree), add them here. Alternatively, if you have JS files in android/
* // for example, you might want to remove it from here.
* inputExcludes: ["android/**", "ios/**"]
* ]
*/
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
// The Fabric Gradle plugin uses an open ended version to react
// quickly to Android tooling updates
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'io.fabric'
repositories {
maven { url 'https://maven.fabric.io/public' }
}
apply from: "../../node_modules/react-native/react.gradle"
apply from: "../../node_modules/react-native-code-push/android/codepush.gradle"
/**
* Set this to true to create two separate APKs instead of one:
* - An APK that only works on ARM devices
* - An APK that only works on x86 devices
* The advantage is the size of the APK is reduced by about 4MB.
* Upload all the APKs to the Play Store and people will download
* the correct one based on the CPU architecture of their device.
*/
def enableSeparateBuildPerCPUArchitecture = false
/**
* Run Proguard to shrink the Java bytecode in release builds.
*/
def enableProguardInReleaseBuilds = false
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.zizzle.app"
minSdkVersion 16
targetSdkVersion 22
versionCode 39
versionName "1.26.88"
ndk {
abiFilters "armeabi-v7a", "x86"
}
}
splits {
abi {
reset()
enable enableSeparateBuildPerCPUArchitecture
universalApk false // If true, also generate a universal APK
include "armeabi-v7a", "x86"
}
}
signingConfigs {
release {
storeFile file(ZIZZLE_RELEASE_STORE_FILE)
storePassword ZIZZLE_RELEASE_STORE_PASSWORD
keyAlias ZIZZLE_RELEASE_KEY_ALIAS
keyPassword ZIZZLE_RELEASE_KEY_PASSWORD
}
}
buildTypes {
release {
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
signingConfig signingConfigs.release
}
}
// applicationVariants are e.g. debug, release
applicationVariants.all { variant ->
variant.outputs.each { output ->
// For each separate APK per architecture, set a unique version code as described here:
// http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
def versionCodes = ["armeabi-v7a":1, "x86":2]
def abi = output.getFilter(OutputFile.ABI)
if (abi != null) { // null for the universal-debug, universal-release variants
output.versionCodeOverride =
versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
}
}
}
}
dependencies {
compile project(':react-native-device-info')
compile project(':react-native-uuid-generator')
compile project(':react-native-google-analytics-bridge')
compile project(':react-native-billing')
compile project(':react-native-code-push')
compile project(':react-native-extra-dimensions-android')
compile project(':react-native-sound')
compile project(':react-native-fs')
compile project(':react-native-fetch-blob')
compile project(':react-native-vector-icons')
compile project(':react-native-i18n')
compile project(':react-native-code-push')
compile project(':react-native-fabric')
compile('com.crashlytics.sdk.android:crashlytics:2.5.5@aar') {
transitive = true;
}
compile fileTree(dir: "libs", include: ["*.jar"])
compile "com.android.support:appcompat-v7:23.0.1"
compile "com.facebook.react:react-native:+" // From node_modules
compile project(':react-native-sqlite-storage')
compile project(':react-native-google-analytics-bridge')
}
// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
from configurations.compile
into 'libs'
}
根据 @michele 的建议,我更新了 build.gradle,现在又出现了另一个错误:
FAILURE: Build failed with an exception.
- What went wrong: Execution failed for task ':app:packageAllReleaseClassesForMultiDex'.
java.util.zip.ZipException: duplicate entry: com/google/android/gms/internal/zzpy.class
apply plugin: "com.android.application"
import com.android.build.OutputFile
/**
* The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets
* and bundleReleaseJsAndAssets).
* These basically call `react-native bundle` with the correct arguments during the Android build
* cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the
* bundle directly from the development server. Below you can see all the possible configurations
* and their defaults. If you decide to add a configuration block, make sure to add it before the
* `apply from: "../../node_modules/react-native/react.gradle"` line.
*
* project.ext.react = [
* // the name of the generated asset file containing your JS bundle
* bundleAssetName: "index.android.bundle",
*
* // the entry file for bundle generation
* entryFile: "index.android.js",
*
* // whether to bundle JS and assets in debug mode
* bundleInDebug: false,
*
* // whether to bundle JS and assets in release mode
* bundleInRelease: true,
*
* // whether to bundle JS and assets in another build variant (if configured).
* // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants
* // The configuration property can be in the following formats
* // 'bundleIn${productFlavor}${buildType}'
* // 'bundleIn${buildType}'
* // bundleInFreeDebug: true,
* // bundleInPaidRelease: true,
* // bundleInBeta: true,
*
* // the root of your project, i.e. where "package.json" lives
* root: "../../",
*
* // where to put the JS bundle asset in debug mode
* jsBundleDirDebug: "$buildDir/intermediates/assets/debug",
*
* // where to put the JS bundle asset in release mode
* jsBundleDirRelease: "$buildDir/intermediates/assets/release",
*
* // where to put drawable resources / React Native assets, e.g. the ones you use via
* // require('./image.png')), in debug mode
* resourcesDirDebug: "$buildDir/intermediates/res/merged/debug",
*
* // where to put drawable resources / React Native assets, e.g. the ones you use via
* // require('./image.png')), in release mode
* resourcesDirRelease: "$buildDir/intermediates/res/merged/release",
*
* // by default the gradle tasks are skipped if none of the JS files or assets change; this means
* // that we don't look at files in android/ or ios/ to determine whether the tasks are up to
* // date; if you have any other folders that you want to ignore for performance reasons (gradle
* // indexes the entire tree), add them here. Alternatively, if you have JS files in android/
* // for example, you might want to remove it from here.
* inputExcludes: ["android/**", "ios/**"]
* ]
*/
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
// The Fabric Gradle plugin uses an open ended version to react
// quickly to Android tooling updates
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'io.fabric'
repositories {
maven { url 'https://maven.fabric.io/public' }
}
apply from: "../../node_modules/react-native/react.gradle"
apply from: "../../node_modules/react-native-code-push/android/codepush.gradle"
/**
* Set this to true to create two separate APKs instead of one:
* - An APK that only works on ARM devices
* - An APK that only works on x86 devices
* The advantage is the size of the APK is reduced by about 4MB.
* Upload all the APKs to the Play Store and people will download
* the correct one based on the CPU architecture of their device.
*/
def enableSeparateBuildPerCPUArchitecture = false
/**
* Run Proguard to shrink the Java bytecode in release builds.
*/
def enableProguardInReleaseBuilds = false
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.zizzle.app"
minSdkVersion 16
targetSdkVersion 22
versionCode 39
versionName "1.26.88"
ndk {
abiFilters "armeabi-v7a", "x86"
}
multiDexEnabled true
}
splits {
abi {
reset()
enable enableSeparateBuildPerCPUArchitecture
universalApk false // If true, also generate a universal APK
include "armeabi-v7a", "x86"
}
}
signingConfigs {
release {
storeFile file(ZIZZLE_RELEASE_STORE_FILE)
storePassword ZIZZLE_RELEASE_STORE_PASSWORD
keyAlias ZIZZLE_RELEASE_KEY_ALIAS
keyPassword ZIZZLE_RELEASE_KEY_PASSWORD
}
}
buildTypes {
release {
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
signingConfig signingConfigs.release
}
}
// applicationVariants are e.g. debug, release
applicationVariants.all { variant ->
variant.outputs.each { output ->
// For each separate APK per architecture, set a unique version code as described here:
// http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
def versionCodes = ["armeabi-v7a":1, "x86":2]
def abi = output.getFilter(OutputFile.ABI)
if (abi != null) { // null for the universal-debug, universal-release variants
output.versionCodeOverride =
versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
}
}
}
}
dependencies {
compile project(':react-native-billing')
compile project(':react-native-code-push')
compile project(':react-native-device-info')
compile project(':react-native-extra-dimensions-android')
compile project(':react-native-fs')
compile project(':react-native-fetch-blob')
compile project(':react-native-google-analytics-bridge')
compile project(':react-native-i18n')
compile project(':react-native-fabric')
compile project(':react-native-sqlite-storage')
compile project(':react-native-sound')
compile project(':react-native-uuid-generator')
compile project(':react-native-vector-icons')
compile('com.crashlytics.sdk.android:crashlytics:2.5.5@aar') {
transitive = true;
}
compile fileTree(dir: "libs", include: ["*.jar"])
compile "com.android.support:appcompat-v7:23.0.1"
compile "com.facebook.react:react-native:+" // From node_modules
}
// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
from configurations.compile
into 'libs'
}
最佳答案
该问题是由名为“react-native-device-info”的特定库引起的。
包含此库后,我的问题中发生了错误,排除此库后,一切再次正常。
我在 github 上打开了一个问题: https://github.com/rebeccahughes/react-native-device-info/issues/102
关于java - 未知源文件 : com. android.dex.DexException:多个 dex 文件定义 Lcom/google/android/gms/internal/zzpq;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39936323/
这个问题已经有答案了: Spark 1.5.1, Cassandra Connector 1.5.0-M2, Cassandra 2.1, Scala 2.10, NoSuchMethodError
我想实现来自 https://github.com/dm77/barcodescanner 的条码扫描器库.像这样运行项目后出现错误 java.lang.NoSuchFieldError: No st
尝试从我的 QA 环境访问 mongodb 时显示以下错误。 java.lang.NoSuchMethodError: com.mongodb.MongoClient. (Ljava/util/Lis
我创建了 android 应用程序并尝试将 admob 添加到它。但它不起作用。谁能帮我解决这个错误。 [2014-04-09 15:16:51 - Dex Loader] Unable to exe
在工作中,我们使用多种工具来捕获多种指标(主要是圈复杂度和 LCOM)。我们使用它们来获取警告标志并指导先发制人的重构工作。这对提高代码质量非常有益。 但是,该过程与构建过程无关。它是单独进行的。此外
我正在查看此处显示的 LCOM 指标, http://www.ndepend.com/Metrics.aspx 所以我们说了一些事情, 1) A class is utterly cohesive i
毕竟我已经为 NDK 设法“准备”了我的 eclipse(至少我是这么认为的),它不再在 c 代码中争论了,但是现在我在执行任何时候都得到“没有找到本地 Lcom 的实现” native 代码..它也
所以,我的应用已经发布了将近一年,但没有看到这个问题,现在它出现了。 即使是现在,我的手机上的调试版本也没有这个问题。我对从 Android Studio 打开的任何模拟器没有任何问题。然而,Goog
我是 Android Studio 的新手,每次尝试运行我的应用程序时,都会遇到异常 Error:Execution failed for task ':abc:dexDebug'. com.andr
我配置了 Google 登录和 AWS 身份池。我正在尝试设置 没有 AWS 登录 UI 的 google sigin .用谷歌成功登录后,我试图在android中访问AWSMobileClient
我在 Android 项目中使用 JNetPcap 库:即使我将 JNetPcap 设置为项目的库,我也无法使用此代码访问我的 native 应用程序。 有人可以帮助我吗?拜托了 我的代码如下: im
我正在使用 Spring MVC 构建 Web 应用程序。我创建了一个名为 User 的新 VO,并创建了一个 POST 方法来处理该 VO。 VO 有默认构造函数,但我得到了 java.lang.N
我一直在四处寻找,有很多帖子与这个问题有关,但似乎没有确定的解决方案(例如 Error when building apk - "Multiple dex files define Lcom/goog
我正在尝试模拟下课。 public class testEntityDO extends BasetestDO { private String entityType; priva
我遇到了与 Firebase 集成的问题。首先,我在根级build.gradle文件中添加了规则: buildscript { repositories { maven { u
我导入gradle: implementation 'javax.mail:javax.mail-api:1.5.3' 不幸的是,我仍然收到无法加载MailLogger的错误。 2019-07-22
我在这里检查了之前的问题,它似乎是相互冲突的依赖项,但是我似乎找不到错误 Error 06-23 16:41:14.542 7770-7770/net.simplifiedlearning.fireb
以下是我不断在我的应用程序上遇到的 fatal error 。我正在尝试使用 Firebase 在我的应用程序上运行聊天信使功能。它正在运行,但此后一直使应用程序完全崩溃。我对代码进行了一些修改,希望
我正在尝试启动一个带有 Fragment 的 Activity,该 Activity 正在执行 QR 扫描,我正在为此使用这个库 > https://code.google.com/archive/p
LCOM 指标是否适用于 SonarQube 4.2 版本? 我需要将此指标添加到我的报告中,但我看不到它可用。 请让我知道是否需要添加任何特定的 jar 来获取此指标。此指标在 Sonar 3.7
我是一名优秀的程序员,十分优秀!