DuplicateFileException 为 android 构建离子应用程序时
DuplicateFileException When building ionic app for android
我正在尝试为 android 构建我的应用程序,自从我将 android-cordova 更新到 6.2.3 后,我一直无法为 [=37] 构建我的应用程序=] 了。
回滚到 android-cordova 6.1.1 没有帮助,我无法在上次升级后再次构建。
完整的错误是
* What went wrong:
Execution failed for task ':transformResourcesWithMergeJavaResForDebug'.
> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate file
s copied in APK META-INF/rxjava.properties
File1: /Users/admin/Desktop/Gravity/clubezy-meteorionic/platforms/android/build/intermediates/exploded-aar/com.goo
gle.android.gms/play-services-basement/11.0.0/jars/classes.jar
File2: /Users/admin/.gradle/caches/modules-2/files-2.1/io.reactivex/rxjava/1.1.9/e4362e62f1ba92e360b197d6d7ffae67e
5ecae9a/rxjava-1.1.9.jar
我怀疑这可能是我的一个 cordova 插件的问题导致的。
这是我的环境和插件。
ionic info:
global packages:
@ionic/cli-utils : 1.4.0
Cordova CLI : 7.0.1
Ionic CLI : 3.4.0
local packages:
@ionic/app-scripts : 1.3.7
@ionic/cli-plugin-cordova : 1.4.0
@ionic/cli-plugin-ionic-angular : 1.3.1
Cordova Platforms : ios 4.4.0, android 6.2.3
Ionic Framework : ionic-angular 3.4.2
System:
Node : v6.10.3
OS : Linux 4.4
Xcode : not installed
ios-deploy : not installed
ios-sim : not installed
npm : 5.0.3
cordova plugin ls
com.instabug.cordova.plugin 1.0.0 "instabug-cordova"
cordova-plugin-3dtouch 1.3.5 "3D Touch"
cordova-plugin-app-version 0.1.9 "AppVersion"
cordova-plugin-camera 2.3.1 "Camera"
cordova-plugin-compat 1.1.0 "Compat"
cordova-plugin-console 1.0.5 "Console"
cordova-plugin-device 1.1.6 "Device"
cordova-plugin-file 4.3.3 "File"
cordova-plugin-file-transfer 1.6.3 "File Transfer"
cordova-plugin-multidex 0.1.1 "Cordova Multi Dex"
cordova-plugin-splashscreen 4.0.3 "Splashscreen"
cordova-plugin-statusbar 2.2.3 "StatusBar"
cordova-plugin-whitelist 1.3.1 "Whitelist"
ionic-plugin-keyboard 2.2.1 "Keyboard"
onesignal-cordova-plugin 2.0.11 "OneSignal Push Notifications"
我认为可能导致此问题的插件是 instabug。
~编辑
每次添加一个插件后
com.instabug.cordova.plugin
或 cordova-plugin-multidex
导致它
multidex 是 instabug 的依赖项
@ionic/cli-utils : 1.4.0
Cordova CLI : 7.0.1
Ionic CLI : 3.4.0
local packages:
@ionic/app-scripts : 1.3.7
@ionic/cli-plugin-cordova : 1.4.0
@ionic/cli-plugin-ionic-angular : 1.3.1
Cordova Platforms : android 6.2.3
Ionic Framework : ionic-angular 3.4.2
System:
Node : v8.1.1
OS : Windows 10
Xcode : not installed
ios-deploy : not installed
ios-sim : not installed
npm : 5.0.3
com.instabug.cordova.plugin 1.0.0 "instabug-cordova"
cordova-plugin-3dtouch 1.3.5 "3D Touch"
cordova-plugin-app-version 0.1.9 "AppVersion"
cordova-plugin-camera 2.4.1 "Camera"
cordova-plugin-compat 1.1.0 "Compat"
cordova-plugin-console 1.0.7 "Console"
cordova-plugin-device 1.1.6 "Device"
cordova-plugin-file 4.3.3 "File"
cordova-plugin-file-transfer 1.6.3 "File Transfer"
cordova-plugin-multidex 0.1.1 "Cordova Multi Dex"
cordova-plugin-splashscreen 4.0.3 "Splashscreen"
cordova-plugin-statusbar 2.2.3 "StatusBar"
cordova-plugin-whitelist 1.3.2 "Whitelist"
ionic-plugin-keyboard 2.2.1 "Keyboard"
onesignal-cordova-plugin 2.1.2 "OneSignal Push Notifications"
在我的 windows 机器上构建,我更新了我的插件并且环境是一样的,我不再收到上面的错误。不完全确定是什么导致了冲突,所以不是真正的答案。
为了让它在我的 iOS 和 Linux 构建机器上构建,我更改了 build.gradle
以拥有它。
android {
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
}
}
defaultConfig {
applicationId = doExtractStringFromManifest("package")
}
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/rxjava.properties'
}
}
它现在似乎正在正确构建,我创建了一个包含更改的分支,所以我可以从 github 中提取它以通过软件包安装。
我正在尝试为 android 构建我的应用程序,自从我将 android-cordova 更新到 6.2.3 后,我一直无法为 [=37] 构建我的应用程序=] 了。
回滚到 android-cordova 6.1.1 没有帮助,我无法在上次升级后再次构建。
完整的错误是
* What went wrong:
Execution failed for task ':transformResourcesWithMergeJavaResForDebug'.
> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate file
s copied in APK META-INF/rxjava.properties
File1: /Users/admin/Desktop/Gravity/clubezy-meteorionic/platforms/android/build/intermediates/exploded-aar/com.goo
gle.android.gms/play-services-basement/11.0.0/jars/classes.jar
File2: /Users/admin/.gradle/caches/modules-2/files-2.1/io.reactivex/rxjava/1.1.9/e4362e62f1ba92e360b197d6d7ffae67e
5ecae9a/rxjava-1.1.9.jar
我怀疑这可能是我的一个 cordova 插件的问题导致的。
这是我的环境和插件。
ionic info:
global packages:
@ionic/cli-utils : 1.4.0
Cordova CLI : 7.0.1
Ionic CLI : 3.4.0
local packages:
@ionic/app-scripts : 1.3.7
@ionic/cli-plugin-cordova : 1.4.0
@ionic/cli-plugin-ionic-angular : 1.3.1
Cordova Platforms : ios 4.4.0, android 6.2.3
Ionic Framework : ionic-angular 3.4.2
System:
Node : v6.10.3
OS : Linux 4.4
Xcode : not installed
ios-deploy : not installed
ios-sim : not installed
npm : 5.0.3
cordova plugin ls
com.instabug.cordova.plugin 1.0.0 "instabug-cordova"
cordova-plugin-3dtouch 1.3.5 "3D Touch"
cordova-plugin-app-version 0.1.9 "AppVersion"
cordova-plugin-camera 2.3.1 "Camera"
cordova-plugin-compat 1.1.0 "Compat"
cordova-plugin-console 1.0.5 "Console"
cordova-plugin-device 1.1.6 "Device"
cordova-plugin-file 4.3.3 "File"
cordova-plugin-file-transfer 1.6.3 "File Transfer"
cordova-plugin-multidex 0.1.1 "Cordova Multi Dex"
cordova-plugin-splashscreen 4.0.3 "Splashscreen"
cordova-plugin-statusbar 2.2.3 "StatusBar"
cordova-plugin-whitelist 1.3.1 "Whitelist"
ionic-plugin-keyboard 2.2.1 "Keyboard"
onesignal-cordova-plugin 2.0.11 "OneSignal Push Notifications"
我认为可能导致此问题的插件是 instabug。
~编辑
每次添加一个插件后
com.instabug.cordova.plugin
或 cordova-plugin-multidex
导致它
multidex 是 instabug 的依赖项
@ionic/cli-utils : 1.4.0
Cordova CLI : 7.0.1
Ionic CLI : 3.4.0
local packages:
@ionic/app-scripts : 1.3.7
@ionic/cli-plugin-cordova : 1.4.0
@ionic/cli-plugin-ionic-angular : 1.3.1
Cordova Platforms : android 6.2.3
Ionic Framework : ionic-angular 3.4.2
System:
Node : v8.1.1
OS : Windows 10
Xcode : not installed
ios-deploy : not installed
ios-sim : not installed
npm : 5.0.3
com.instabug.cordova.plugin 1.0.0 "instabug-cordova"
cordova-plugin-3dtouch 1.3.5 "3D Touch"
cordova-plugin-app-version 0.1.9 "AppVersion"
cordova-plugin-camera 2.4.1 "Camera"
cordova-plugin-compat 1.1.0 "Compat"
cordova-plugin-console 1.0.7 "Console"
cordova-plugin-device 1.1.6 "Device"
cordova-plugin-file 4.3.3 "File"
cordova-plugin-file-transfer 1.6.3 "File Transfer"
cordova-plugin-multidex 0.1.1 "Cordova Multi Dex"
cordova-plugin-splashscreen 4.0.3 "Splashscreen"
cordova-plugin-statusbar 2.2.3 "StatusBar"
cordova-plugin-whitelist 1.3.2 "Whitelist"
ionic-plugin-keyboard 2.2.1 "Keyboard"
onesignal-cordova-plugin 2.1.2 "OneSignal Push Notifications"
在我的 windows 机器上构建,我更新了我的插件并且环境是一样的,我不再收到上面的错误。不完全确定是什么导致了冲突,所以不是真正的答案。
为了让它在我的 iOS 和 Linux 构建机器上构建,我更改了 build.gradle
以拥有它。
android {
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
}
}
defaultConfig {
applicationId = doExtractStringFromManifest("package")
}
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/rxjava.properties'
}
}
它现在似乎正在正确构建,我创建了一个包含更改的分支,所以我可以从 github 中提取它以通过软件包安装。