Search Unity

Bug Execution failed for task ':unityLibrary:BuildIl2CppTask'.

Discussion in 'Editor & General Support' started by AndresQAndroid, Nov 9, 2022.

  1. AndresQAndroid

    AndresQAndroid

    Joined:
    Jun 5, 2019
    Posts:
    2
    I'm Running Unity as a Library inside a Native Android app, Unity Version 2021.3.11f1, I'm getting a compile error in the gradle file but not sure what the root cause is, tried all possible solutions I could try for this error but none of them worked.

    Code (CSharp):
    1. Build file 'xxxx\unityLibrary\build.gradle' line: 73
    2.  
    3. Execution failed for task ':unityLibrary:BuildIl2CppTask'.
    4. > Process 'command 'xxxx/unityLibrary/src/main/Il2CppOutputProject/IL2CPP/build/deploy/il2cpp.exe'' finished with non-zero exit value 4
    5.  
    6. * Try:
    7. > Run with --info or --debug option to get more log output.
    8. > Run with --scan to get full insights.
    9.  
    10. * Exception is:
    11. org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':unityLibrary:BuildIl2CppTask'.
    12.     at
    13.     at build_2orkw2fwkwmksplqm127dldhh.BuildIl2Cpp(xxxx\unityLibrary\build.gradle:73)
    14.     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    15.     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    16.     at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    17.     at org.gradle.internal.metaobject.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:484)
    18.     at org.gradle.internal.metaobject.BeanDynamicObject.tryInvokeMethod(BeanDynamicObject.java:196)
    19.     at org.gradle.groovy.scripts.BasicScript$ScriptDynamicObject.tryInvokeMethod(BasicScript.java:131)
    20.     at org.gradle.internal.metaobject.ConfigureDelegate.invokeMethod(ConfigureDelegate.java:77)
    21.     at org.gradle.internal.metaobject.BeanDynamicObject$GroovyObjectAdapter.invokeOpaqueMethod(BeanDynamicObject.java:584)
    22.     at org.gradle.internal.metaobject.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:511)
    23.     at org.gradle.internal.metaobject.BeanDynamicObject.tryInvokeMethod(BeanDynamicObject.java:196)
    24.     at org.gradle.internal.metaobject.ConfigureDelegate.invokeMethod(ConfigureDelegate.java:77)
    25.     at build_2orkw2fwkwmksplqm127dldhh$_run_closure3$_closure12$_closure16.doCall(xxxx\unityLibrary\build.gradle:85)
    26.  
    27.  
    gradle file is:

    Code (CSharp):
    1. apply plugin: 'com.android.library'
    2.  
    3.  
    4. dependencies {
    5.     implementation fileTree(dir: 'libs', include: ['*.jar'])
    6.  
    7. }
    8.  
    9. android {
    10.     compileSdkVersion 30
    11.     buildToolsVersion '30.0.2'
    12.  
    13.     compileOptions {
    14.         sourceCompatibility JavaVersion.VERSION_1_8
    15.         targetCompatibility JavaVersion.VERSION_1_8
    16.     }
    17.  
    18.     defaultConfig {
    19.         minSdkVersion 26
    20.         targetSdkVersion 30
    21.         ndk {
    22.             abiFilters 'armeabi-v7a', 'arm64-v8a'
    23.         }
    24.         versionCode 1
    25.         versionName '1.0.2'
    26.         consumerProguardFiles 'proguard-unity.txt'
    27.     }
    28.  
    29.     lintOptions {
    30.         abortOnError false
    31.     }
    32.  
    33.     aaptOptions {
    34.         noCompress = ['.unity3d', '.ress', '.resource', '.obb', '.bundle', '.unityexp'] + unityStreamingAssets.tokenize(', ')
    35.         ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~"
    36.     }
    37.  
    38.     packagingOptions {
    39.         doNotStrip '*/armeabi-v7a/*.so'
    40.         doNotStrip '*/arm64-v8a/*.so'
    41.     }
    42. }
    43.  
    44. def getSdkDir() {
    45.     Properties local = new Properties()
    46.     local.load(new FileInputStream("${rootDir}/local.properties"))
    47.     return local.getProperty('sdk.dir')
    48. }
    49.  
    50. def BuildIl2Cpp(String workingDir, String configuration, String architecture, String abi, String[] staticLibraries) {
    51.     def commandLineArgs = []
    52.     commandLineArgs.add("--compile-cpp")
    53.     commandLineArgs.add("--platform=Android")
    54.     commandLineArgs.add("--architecture=" + architecture)
    55.     commandLineArgs.add("--outputpath=" + workingDir + "/src/main/jniLibs/" + abi + "/libil2cpp.so")
    56.     commandLineArgs.add("--libil2cpp-static")
    57.     commandLineArgs.add("--baselib-directory=" + workingDir + "/src/main/jniStaticLibs/" + abi)
    58.     commandLineArgs.add("--incremental-g-c-time-slice=3")
    59.     commandLineArgs.add("--configuration=" + configuration)
    60.     commandLineArgs.add("--dotnetprofile=unityaot-linux")
    61.     //commandLineArgs.add("--profiler-report")
    62.     //commandLineArgs.add("--profiler-output-file=" + workingDir + "/build/il2cpp_"+ abi + "_" + configuration + "/il2cpp_conv.traceevents")
    63.     //commandLineArgs.add("--print-command-line")
    64.     commandLineArgs.add("--generatedcppdir=" + workingDir + "/src/main/Il2CppOutputProject/Source/il2cppOutput")
    65.     commandLineArgs.add("--cachedirectory=" + workingDir + "/build/il2cpp_"+ abi + "_" + configuration + "/il2cpp_cache")
    66.     commandLineArgs.add("--tool-chain-path=" + android.ndkDirectory)
    67.     staticLibraries.eachWithIndex {fileName, i->
    68.         commandLineArgs.add("--additional-libraries=" + workingDir + "/src/main/jniStaticLibs/" + abi + "/" + fileName)
    69.     }
    70.     def executableExtension = ""
    71.     if (org.gradle.internal.os.OperatingSystem.current().isWindows())
    72.         executableExtension = ".exe"
    73.     exec {
    74.         executable workingDir + "/src/main/Il2CppOutputProject/IL2CPP/build/deploy/il2cpp" + executableExtension
    75.         args commandLineArgs
    76.         environment "ANDROID_SDK_ROOT", getSdkDir()
    77.     }
    78.     delete workingDir + "/src/main/jniLibs/" + abi + "/libil2cpp.sym.so"
    79.     ant.move(file: workingDir + "/src/main/jniLibs/" + abi + "/libil2cpp.dbg.so", tofile: workingDir + "/symbols/" + abi + "/libil2cpp.so")
    80. }
    81.  
    82. android {
    83.     task BuildIl2CppTask {
    84.         doLast {
    85.               BuildIl2Cpp(projectDir.toString().replaceAll('\\\\', '/'), 'Release', 'armv7', 'armeabi-v7a', [  ] as String[]);
    86.               BuildIl2Cpp(projectDir.toString().replaceAll('\\\\', '/'), 'Release', 'arm64', 'arm64-v8a', [  ] as String[]);
    87.         }
    88.     }
    89.     afterEvaluate {
    90.         if (project(':unityLibrary').tasks.findByName('mergeDebugJniLibFolders'))
    91.             project(':unityLibrary').mergeDebugJniLibFolders.dependsOn BuildIl2CppTask
    92.         if (project(':unityLibrary').tasks.findByName('mergeReleaseJniLibFolders'))
    93.             project(':unityLibrary').mergeReleaseJniLibFolders.dependsOn BuildIl2CppTask
    94.     }
    95.     sourceSets {
    96.         main {
    97.             jni.srcDirs = ["src/main/Il2CppOutputProject"]
    98.         }
    99.     }
    100.  
    101.     repositories {
    102.         mavenCentral()
    103.         google()
    104.         maven { url 'https://jitpack.io' }
    105.     }
    106.     ndkVersion '21.3.6528147'
    107. }
    108.  
    109.  
    110.  
    111.