Я пытаюсь внедрить плагин GameAnalytics в свою игру. Кроме того, я использую плагин AdInCube, который работает нормально, но теперь я получаю сообщение об ошибке каждый раз во время сборки. Я получил точно такую же ошибку, когда пытался реализовать плагин Google Play Services. Проблемы возникают сразу после импорта нового пакета без каких-либо изменений в коде. Я пытался использовать AndroidManifests из обоих плагинов, но все равно получил эту ошибку.
Ошибка:
CommandInvokationFailure: Gradle build failed.
C:/Program Files/Java/jdk1.8.0_191\bin\java.exe -classpath "C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib\gradle-launcher-4.2.1.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx2048m" "assembleRelease"
stderr[
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':transformClassesWithJarMergingForRelease'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/google/android/gms/auth/api/signin/GoogleSignInAccount.class
Я обнаружил, что Unity создает две одинаковые папки во время сборки и поэтому не знает, какую из них использовать. Я не могу просто удалить одну из них, потому что она сразу будет создана заново. Я понятия не имею, какие файлы вам нужны, чтобы помочь мне, так что пока добавлю это.
MainTemplate.gradle из AdInCube:
buildscript {
repositories {
google()
maven {
url 'https://maven.google.com/'
name 'Google'
}
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
}
}
allprojects {
repositories {
flatDir {
dirs 'libs'
}
}
}
apply plugin: 'com.android.application'
repositories {
maven {
url 'https://maven.google.com'
}
maven {
url 'http://repository.adincube.com/maven'
}
jcenter()
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile('com.adincube.sdk:AdinCube-Unity-3626ebe:2.3.1@aar') {
transitive = true
}
compile 'com.android.support:multidex:1.0.1'
**DEPS**
}
android {
compileSdkVersion **APIVERSION**
buildToolsVersion '**BUILDTOOLS**'
defaultConfig {
targetSdkVersion '28'
minSdkVersion 14
multiDexEnabled true
}
lintOptions {
abortOnError false
}
aaptOptions {
noCompress '.unity3d', '.ress', '.resource', '.obb'
}
**SIGN**
buildTypes {
debug {
minifyEnabled **MINIFY_DEBUG**
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-unity.txt'**USER_PROGUARD**
jniDebuggable true
}
release {
minifyEnabled **MINIFY_RELEASE**
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-unity.txt'**USER_PROGUARD**
**SIGNCONFIG**
}
}
packagingOptions {
exclude 'lib/armeabi/libadcolony.so'
exclude 'lib/armeabi/libjs.so'
exclude 'lib/arm64-v8a/libadcolony.so'
exclude 'lib/arm64-v8a/libjs.so'
exclude 'lib/x86_64/libadcolony.so'
exclude 'lib/x86_64/libjs.so'
}
}
dependencies {
compile ('com.adincube.sdk:AdinCube-Unity-3626ebe:2.+@aar') {
transitive = true
}
compile 'com.android.support:multidex:1.0.1'
}
repositories {
maven {
url 'https://maven.google.com'
}
maven {
url 'http://repository.adincube.com/maven'
}
jcenter()
}
android {
defaultConfig {
multiDexEnabled true
}
}
android {
packagingOptions {
exclude 'lib/armeabi/libadcolony.so'
exclude 'lib/armeabi/libjs.so'
exclude 'lib/arm64-v8a/libadcolony.so'
exclude 'lib/arm64-v8a/libjs.so'
exclude 'lib/x86_64/libadcolony.so'
exclude 'lib/x86_64/libjs.so'
}
}
AndroidManifest от AdInCube:
<?xml version = "1.0" encoding = "utf-8"?>
<manifest xmlns:android = "http://schemas.android.com/apk/res/android"
package = "games.****.block"
android:installLocation = "preferExternal"
android:versionCode = "2"
android:versionName = "1.1.1">
<uses-permission android:name = "com.android.vending.BILLING" />
<supports-screens
android:anyDensity = "true"
android:largeScreens = "true"
android:normalScreens = "true"
android:smallScreens = "true"
android:xlargeScreens = "true" />
<application
android:name = "android.support.multidex.MultiDexApplication"
android:icon = "@drawable/app_icon"
android:label = "@string/app_name"
android:theme = "@style/UnityThemeSelector">
<activity
android:name = "com.unity3d.player.UnityPlayerActivity"
android:label = "@string/app_name">
<intent-filter>
<action android:name = "android.intent.action.MAIN" />
<category android:name = "android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data
android:name = "unityplayer.UnityActivity"
android:value = "true" />
</activity>
</application>
</manifest>
У меня есть только один файл link.xml в папке с ресурсами. <?xml version = "1.0"?> -<linker> -<assembly fullname = "UnityEngine.Purchasing"> <type fullname = "UnityEngine.Purchasing.Extension.IPurchasingBinder" preserve = "all"/> </assembly> -<assembly fullname = "Stores"> <type fullname = "UnityEngine.Purchasing.CloudCatalogImpl" preserve = "all"/> <type fullname = "UnityEngine.Purchasing.Promo" preserve = "all"/> </assembly> -<assembly fullname = "mscorlib"> <type fullname = "System.Security.Cryptography.*" preserve = "all"/> </assembly> </linker>
попробуйте следующее: <linker> <assembly fullname = "UnityEngine.Purchasing"> <type fullname = "UnityEngine.Purchasing.Extension.IPurchasingBinder" preserve = "all" /> </assembly> <assembly fullname = "Stores"> < type fullname = "UnityEngine.Purchasing.CloudCatalogImpl" preserve = "all" /> <type fullname = "UnityEngine.Purchasing.Promo" preserve = "all" /> </assembly> <assembly fullname = "mscorlib"> <type fullname = "System.Security.Cryptography. *" Preserve = "all" /> <type fullname = "System.Type" preserve = "all" /> <namespace fullname = "System.Reflection" preserve = "all" /> < / assembly> </assembly> </linker>
Получил ту же ошибку: / Я что-то читал о добавлении компиляции с помощью exclude в mainTemplate, но понятия не имею, как узнать что.
В любом случае, это было рискованно. Попробуйте удалить файл, и пусть Unity восстановит его за вас. Попробуйте удалить и прочитать плагины во время процесса, пока не найдете причину, по которой это происходит. Имейте в виду, что встроенные файлы link.xml могут быть найдены в каталоге каждого плагина. Когда у меня была аналогичная ошибка, это было связано с тем, что все библиотеки DLL различных платформ FacebookSDK упоминались в linx.xml, а не только на android. Удачи!
Попытаюсь. Спасибо! :)
Можете ли вы также разместить содержимое всех файлов link.xml в своих плагинах? Если вы уверены, что конкретный плагин привел к ошибке сборки, просто опубликуйте содержимое его файла link.xml.