Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Execution failed for task ':unityLibrary:BuildIl2CppTask'. 'eglib-config.h' file not found MacBook m1 #544

Open
asikpro13 opened this issue Feb 27, 2022 · 13 comments
Labels
android This issue is specific to the Android Platform. Build This issue refers to the build configuration and builds failing.

Comments

@asikpro13
Copy link

asikpro13 commented Feb 27, 2022

/Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/src/main/Il2CppOutputProject/IL2CPP/build/deploy/il2cpp --compile-cpp --platform=Android --architecture=arm64 --outputpath=/Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/src/main/jniLibs/arm64-v8a/libil2cpp.so --libil2cpp-static --baselib-directory=/Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/src/main/jniStaticLibs/arm64-v8a --configuration=Release --dotnetprofile=unityaot-linux --enable-debugger --profiler-report --profiler-output-file=/Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/build/il2cpp_arm64-v8a_Release/il2cpp_conv.traceevents --print-command-line --generatedcppdir=/Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/src/main/Il2CppOutputProject/Source/il2cppOutput --cachedirectory=/Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/build/il2cpp_arm64-v8a_Release/il2cpp_cache --tool-chain-path=/Applications/Unity/Hub/Editor/2021.2.12f1/PlaybackEngines/AndroidPlayer/NDK
Starting: /Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/src/main/Il2CppOutputProject/IL2CPP/build/deploy/bee_backend/mac-arm64/bee_backend --profile="/Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/build/il2cpp_arm64-v8a_Release/il2cpp_cache/buildstate/backend_profiler0.traceevents" --stdin-canary --dagfile="/Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/build/il2cpp_arm64-v8a_Release/il2cpp_cache/buildstate/bee.dag" --continue-on-failure FinalProgram
WorkingDir: /Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/build/il2cpp_arm64-v8a_Release/il2cpp_cache/buildstate
ExitCode: 4 Duration: 0s40ms
ExitCode: 0 Duration: 0s0ms
Starting: /Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/src/main/Il2CppOutputProject/IL2CPP/build/deploy/bee_backend/mac-arm64/bee_backend --profile="/Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/build/il2cpp_arm64-v8a_Release/il2cpp_cache/buildstate/backend_profiler1.traceevents" --stdin-canary --dagfile="/Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/build/il2cpp_arm64-v8a_Release/il2cpp_cache/buildstate/bee.dag" --continue-on-failure --dagfilejson="/Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/build/il2cpp_arm64-v8a_Release/il2cpp_cache/buildstate/bee.dag.json" FinalProgram
WorkingDir: /Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/build/il2cpp_arm64-v8a_Release/il2cpp_cache/buildstate
ExitCode: 3 Duration: 10m:24s
Build failed with 526 successful nodes and 73 failed ones
Annotation: C_Android_arm64 87li/9953_m_vm3.lump.o
Cmdline: "/Applications/Unity/Hub/Editor/2021.2.12f1/PlaybackEngines/AndroidPlayer/NDK/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++" -march=armv8-a -D__ANDROID_API__=22 -DANDROID -DHAVE_INTTYPES_H -no-canonical-prefixes -funwind-tables -fstack-protector -fdiagnostics-format=msvc -fomit-frame-pointer -std=c++11 -Wswitch -Wno-trigraphs -Wno-tautological-compare -Wno-invalid-offsetof -Wno-implicitly-unsigned-literal -Wno-integer-overflow -Wno-shift-negative-value -Wno-unknown-attributes -Wno-implicit-function-declaration -Wno-null-conversion -Wno-missing-declarations -Wno-unused-value -Wno-pragma-once-outside-header -fvisibility=hidden -fexceptions -fno-rtti -g -Os -fPIC -fno-strict-overflow -ffunction-sections -fdata-sections -fmessage-length=0 -pipe -DBASELIB_INLINE_NAMESPACE=il2cpp_baselib -DIL2CPP_MONO_DEBUGGER=1 -DRUNTIME_IL2CPP -DTARGET_ARM64 -DGC_NOT_DLL -DPLATFORM_UNITY -DUNITY_USE_PLATFORM_STUBS -DENABLE_OVERRIDABLE_ALLOCATORS -DIL2CPP_ON_MONO=1 -DDISABLE_JIT=1 -DDISABLE_REMOTING=1 -DHAVE_CONFIG_H -DMONO_DLL_EXPORT=1 -DIL2CPP_DEFAULT_DATA_DIR_PATH=Data -DNDEBUG -I"." -I"/Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/src/main/Il2CppOutputProject/IL2CPP/libil2cpp/pch" -I"/Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/src/main/Il2CppOutputProject/IL2CPP/libil2cpp" -I"/Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/src/main/Il2CppOutputProject/IL2CPP/external/baselib/Include" -I"/Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/src/main/Il2CppOutputProject/IL2CPP/external/baselib/Platforms/Android/Include" -I"/Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/src/main/Il2CppOutputProject/IL2CPP/external/bdwgc/include" -I"/Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/src/main/Il2CppOutputProject/IL2CPP/external/mono/mono/eglib" -I"/Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/src/main/Il2CppOutputProject/IL2CPP/external/mono" -I"/Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/src/main/Il2CppOutputProject/IL2CPP/libmono/config" -I"/Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/src/main/Il2CppOutputProject/IL2CPP/libil2cpp/os/c-api" -o "87li/9953_m_vm3.lump.o" -fcolor-diagnostics -target aarch64-linux-android22 -fstrict-aliasing -fdiagnostics-format=msvc -c -x c++ "87li/xglm_vm3.lump.cpp"
ExitCode: 1
Stdout:
In file included from 87li/xglm_vm3.lump.cpp:12:
In file included from /Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/src/main/Il2CppOutputProject/IL2CPP/libil2cpp/vm/Thread.cpp:33:
In file included from /Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/src/main/Il2CppOutputProject/IL2CPP/external/mono/mono/metadata/profiler-private.h:10:
In file included from /Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/src/main/Il2CppOutputProject/IL2CPP/external/mono/mono/metadata/class-internals.h:12:
In file included from /Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/src/main/Il2CppOutputProject/IL2CPP/external/mono/mono/metadata/metadata-internals.h:10:
In file included from /Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/src/main/Il2CppOutputProject/IL2CPP/external/mono/mono/metadata/cil-coff.h:9:
/Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/src/main/Il2CppOutputProject/IL2CPP/external/mono/mono/eglib/glib.h(23,10): fatal error: 'eglib-config.h' file not found
#include <eglib-config.h>
^~~~~~~~~~~~~~~~
1 error generated.

Error: Unity.IL2CPP.Building.BuilderFailedException: Build failed with 526 successful nodes and 73 failed ones
Annotation: C_Android_arm64 87li/9953_m_vm3.lump.o
Cmdline: "/Applications/Unity/Hub/Editor/2021.2.12f1/PlaybackEngines/AndroidPlayer/NDK/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++" -march=armv8-a -D__ANDROID_API__=22 -DANDROID -DHAVE_INTTYPES_H -no-canonical-prefixes -funwind-tables -fstack-protector -fdiagnostics-format=msvc -fomit-frame-pointer -std=c++11 -Wswitch -Wno-trigraphs -Wno-tautological-compare -Wno-invalid-offsetof -Wno-implicitly-unsigned-literal -Wno-integer-overflow -Wno-shift-negative-value -Wno-unknown-attributes -Wno-implicit-function-declaration -Wno-null-conversion -Wno-missing-declarations -Wno-unused-value -Wno-pragma-once-outside-header -fvisibility=hidden -fexceptions -fno-rtti -g -Os -fPIC -fno-strict-overflow -ffunction-sections -fdata-sections -fmessage-length=0 -pipe -DBASELIB_INLINE_NAMESPACE=il2cpp_baselib -DIL2CPP_MONO_DEBUGGER=1 -DRUNTIME_IL2CPP -DTARGET_ARM64 -DGC_NOT_DLL -DPLATFORM_UNITY -DUNITY_USE_PLATFORM_STUBS -DENABLE_OVERRIDABLE_ALLOCATORS -DIL2CPP_ON_MONO=1 -DDISABLE_JIT=1 -DDISABLE_REMOTING=1 -DHAVE_CONFIG_H -DMONO_DLL_EXPORT=1 -DIL2CPP_DEFAULT_DATA_DIR_PATH=Data -DNDEBUG -I"." -I"/Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/src/main/Il2CppOutputProject/IL2CPP/libil2cpp/pch" -I"/Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/src/main/Il2CppOutputProject/IL2CPP/libil2cpp" -I"/Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/src/main/Il2CppOutputProject/IL2CPP/external/baselib/Include" -I"/Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/src/main/Il2CppOutputProject/IL2CPP/external/baselib/Platforms/Android/Include" -I"/Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/src/main/Il2CppOutputProject/IL2CPP/external/bdwgc/include" -I"/Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/src/main/Il2CppOutputProject/IL2CPP/external/mono/mono/eglib" -I"/Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/src/main/Il2CppOutputProject/IL2CPP/external/mono" -I"/Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/src/main/Il2CppOutputProject/IL2CPP/libmono/config" -I"/Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/src/main/Il2CppOutputProject/IL2CPP/libil2cpp/os/c-api" -o "87li/9953_m_vm3.lump.o" -fcolor-diagnostics -target aarch64-linux-android22 -fstrict-aliasing -fdiagnostics-format=msvc -c -x c++ "87li/xglm_vm3.lump.cpp"
ExitCode: 1
Stdout:
In file included from 87li/xglm_vm3.lump.cpp:12:
In file included from /Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/src/main/Il2CppOutputProject/IL2CPP/libil2cpp/vm/Thread.cpp:33:
In file included from /Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/src/main/Il2CppOutputProject/IL2CPP/external/mono/mono/metadata/profiler-private.h:10:
In file included from /Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/src/main/Il2CppOutputProject/IL2CPP/external/mono/mono/metadata/class-internals.h:12:
In file included from /Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/src/main/Il2CppOutputProject/IL2CPP/external/mono/mono/metadata/metadata-internals.h:10:
In file included from /Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/src/main/Il2CppOutputProject/IL2CPP/external/mono/mono/metadata/cil-coff.h:9:
/Users/vadimmazurek/StudioProjects/flutter_unity_widget/android/unityLibrary/src/main/Il2CppOutputProject/IL2CPP/external/mono/mono/eglib/glib.h(23,10): fatal error: 'eglib-config.h' file not found
#include <eglib-config.h>
^~~~~~~~~~~~~~~~
1 error generated.

at il2cpp.Program.DoRun(String[] args, RuntimePlatform platform, Il2CppCommandLineArguments il2CppCommandLineArguments, BuildingOptions buildingOptions, Boolean throwExceptions) in /Users/bokken/build/output/unity/il2cpp/il2cpp/Program.cs:line 331

@asikpro13 asikpro13 changed the title Execution failed for task ':unityLibrary:BuildIl2CppTask'. Execution failed for task ':unityLibrary:BuildIl2CppTask'. 'eglib-config.h' file not found MacBook m1 Feb 27, 2022
@NTC
Copy link

NTC commented Feb 27, 2022

I have the same error !

@IluhinDotPro
Copy link

IluhinDotPro commented Mar 3, 2022

I don't understand how it works.. but..
add

commandLineArgs.add("--additional-include-directories=" + workingDir + "/src/main/Il2CppOutputProject/IL2CPP/external/bdwgc/include")
commandLineArgs.add("--additional-include-directories=" + workingDir + "/src/main/Il2CppOutputProject/IL2CPP/libil2cpp/include")

to android\unityLibrary\build.gradle after

def commandLineArgs = []
    commandLineArgs.add("--compile-cpp")
    commandLineArgs.add("--platform=Android")
    commandLineArgs.add("--architecture=" + architecture)
    commandLineArgs.add("--outputpath=" + workingDir + "/src/main/jniLibs/" + abi + "/libil2cpp.so")
    commandLineArgs.add("--libil2cpp-static")
    commandLineArgs.add("--baselib-directory=" + workingDir + "/src/main/jniStaticLibs/" + abi)
    commandLineArgs.add("--incremental-g-c-time-slice=3")
    commandLineArgs.add("--configuration=" + configuration)
......

in method BuildIl2Cpp

@NTC
Copy link

NTC commented Mar 3, 2022

Thanks, but unfortunately it doesn't seem to work... I still have the same error

@IluhinDotPro
Copy link

Try this commandLineArgs

    def commandLineArgs = []
    commandLineArgs.add("--compile-cpp")
    commandLineArgs.add("--platform=Android")
    commandLineArgs.add("--architecture=" + architecture)
    commandLineArgs.add("--outputpath=" + workingDir + "/src/main/jniLibs/" + abi + "/libil2cpp.so")
    commandLineArgs.add("--libil2cpp-static")
    commandLineArgs.add("--baselib-directory=" + workingDir + "/src/main/jniStaticLibs/" + abi)
    commandLineArgs.add("--incremental-g-c-time-slice=3")
    commandLineArgs.add("--configuration=" + configuration)
    //commandLineArgs.add("--dotnetprofile=unityaot-linux")
    //commandLineArgs.add("--enable-debugger")
    //commandLineArgs.add("--profiler-report")
    //commandLineArgs.add("--profiler-output-file=" + workingDir + "/build/il2cpp_"+ abi + "_" + configuration + "/il2cpp_conv.traceevents")
    commandLineArgs.add("--print-command-line")
    commandLineArgs.add("--additional-include-directories=" + workingDir + "/src/main/Il2CppOutputProject/IL2CPP/external/bdwgc/include")
    commandLineArgs.add("--additional-include-directories=" + workingDir + "/src/main/Il2CppOutputProject/IL2CPP/libil2cpp/include")
    commandLineArgs.add("--generatedcppdir=" + workingDir + "/src/main/Il2CppOutputProject/Source/il2cppOutput")
    commandLineArgs.add("--cachedirectory=" + workingDir + "/build/il2cpp_"+ abi + "_" + configuration + "/il2cpp_cache")
    commandLineArgs.add("--tool-chain-path=" + android.ndkDirectory)
    staticLibraries.eachWithIndex {fileName, i->
        commandLineArgs.add("--additional-libraries=" + workingDir + "/src/main/jniStaticLibs/" + abi + "/" + fileName)
    }

@NTC
Copy link

NTC commented Mar 3, 2022

Thank you ! it works !

@mvn-daipham2-hn
Copy link

@IluhinDotPro It works. Thank you!

@yfunk
Copy link

yfunk commented Mar 8, 2022

Same issue, but on an Intel Macbook, so this doesn't seem to be specific to M1. Removing the Debugger / Profiler related command line arguments as suggested above also solved it for me.

Any ideas on why this happens? The project exported from Unity builds fine by itself.

@lswd
Copy link

lswd commented Mar 11, 2022

Try this commandLineArgs

    def commandLineArgs = []
    commandLineArgs.add("--compile-cpp")
    commandLineArgs.add("--platform=Android")
    commandLineArgs.add("--architecture=" + architecture)
    commandLineArgs.add("--outputpath=" + workingDir + "/src/main/jniLibs/" + abi + "/libil2cpp.so")
    commandLineArgs.add("--libil2cpp-static")
    commandLineArgs.add("--baselib-directory=" + workingDir + "/src/main/jniStaticLibs/" + abi)
    commandLineArgs.add("--incremental-g-c-time-slice=3")
    commandLineArgs.add("--configuration=" + configuration)
    //commandLineArgs.add("--dotnetprofile=unityaot-linux")
    //commandLineArgs.add("--enable-debugger")
    //commandLineArgs.add("--profiler-report")
    //commandLineArgs.add("--profiler-output-file=" + workingDir + "/build/il2cpp_"+ abi + "_" + configuration + "/il2cpp_conv.traceevents")
    commandLineArgs.add("--print-command-line")
    commandLineArgs.add("--additional-include-directories=" + workingDir + "/src/main/Il2CppOutputProject/IL2CPP/external/bdwgc/include")
    commandLineArgs.add("--additional-include-directories=" + workingDir + "/src/main/Il2CppOutputProject/IL2CPP/libil2cpp/include")
    commandLineArgs.add("--generatedcppdir=" + workingDir + "/src/main/Il2CppOutputProject/Source/il2cppOutput")
    commandLineArgs.add("--cachedirectory=" + workingDir + "/build/il2cpp_"+ abi + "_" + configuration + "/il2cpp_cache")
    commandLineArgs.add("--tool-chain-path=" + android.ndkDirectory)
    staticLibraries.eachWithIndex {fileName, i->
        commandLineArgs.add("--additional-libraries=" + workingDir + "/src/main/jniStaticLibs/" + abi + "/" + fileName)
    }

hello,Where do I add the above code,Below is the unityLibrary code in my project

`// GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN

apply plugin: 'com.android.library'

dependencies {
implementation(name: 'unity-classes', ext:'jar')
}

android {
compileSdkVersion 29
buildToolsVersion '30.0.2'

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

defaultConfig {
    minSdkVersion 19
    targetSdkVersion 29
    ndk {
        abiFilters 
    }
    versionCode 1
    versionName '0.1'
    consumerProguardFiles 'proguard-unity.txt'
}

lintOptions {
    abortOnError false
}

aaptOptions {
    noCompress = ['.ress', '.resource', '.obb'] + unityStreamingAssets.tokenize(', ')
    ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~"
}

packagingOptions {
    doNotStrip '*/armeabi-v7a/*.so'
    doNotStrip '*/arm64-v8a/*.so'
}

}

def getSdkDir() {
Properties local = new Properties()
local.load(new FileInputStream("${rootDir}/local.properties"))
return local.getProperty('sdk.dir')
}

def BuildIl2Cpp(String workingDir, String targetDirectory, String architecture, String abi, String configuration) {
exec {
commandLine(workingDir + "/src/main/Il2CppOutputProject/IL2CPP/build/deploy/netcoreapp3.1/il2cpp",
"--compile-cpp",
"--libil2cpp-static",
"--platform=Android",
"--architecture=" + architecture,
"--configuration=" + configuration,
"--outputpath=" + workingDir + targetDirectory + abi + "/libil2cpp.so",
"--cachedirectory=" + workingDir + "/build/il2cpp_"+ abi + "_" + configuration + "/il2cpp_cache",
"--additional-include-directories=" + workingDir + "/src/main/Il2CppOutputProject/IL2CPP/external/bdwgc/include",
"--additional-include-directories=" + workingDir + "/src/main/Il2CppOutputProject/IL2CPP/libil2cpp/include",
"--tool-chain-path=" + android.ndkDirectory,
"--map-file-parser=" + workingDir + "/src/main/Il2CppOutputProject/IL2CPP/MapFileParser/MapFileParser.exe",
"--generatedcppdir=" + workingDir + "/src/main/Il2CppOutputProject/Source/il2cppOutput",
"--baselib-directory=" + workingDir + "/src/main/jniStaticLibs/" + abi,
"--dotnetprofile=unityaot")
environment "ANDROID_SDK_ROOT", getSdkDir()
}
delete workingDir + targetDirectory + abi + "/libil2cpp.sym.so"
ant.move(file: workingDir + targetDirectory + abi + "/libil2cpp.dbg.so", tofile: workingDir + "/symbols/" + abi + "/libil2cpp.so")

}

android {
task BuildIl2CppTask {
doLast {

          BuildIl2Cpp(projectDir.toString().replaceAll('\\\\', '/'), '/src/main/jniLibs/', 'ARMv7', 'armeabi-v7a', 'Release');
          BuildIl2Cpp(projectDir.toString().replaceAll('\\\\', '/'), '/src/main/jniLibs/', 'ARM64', 'arm64-v8a', 'Release');
    }
}
afterEvaluate {
    if (project(':unityLibrary').tasks.findByName('mergeDebugJniLibFolders'))
        project(':unityLibrary').mergeDebugJniLibFolders.dependsOn BuildIl2CppTask
    if (project(':unityLibrary').tasks.findByName('mergeReleaseJniLibFolders'))
        project(':unityLibrary').mergeReleaseJniLibFolders.dependsOn BuildIl2CppTask
}
sourceSets {
    main {
        jni.srcDirs = ["src/main/Il2CppOutputProject"]
    }
}

}`

图片

@khal-it
Copy link

khal-it commented Jun 7, 2022

could you share the full gradle file

@IluhinDotPro
Copy link

could you share the full gradle file

// GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN

apply plugin: 'com.android.library'


dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
}

android {
    compileSdkVersion 30
    buildToolsVersion '30.0.2'

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    defaultConfig {
        minSdkVersion 24
        targetSdkVersion 30
        ndk {
            abiFilters 'armeabi-v7a', 'arm64-v8a'
        }
        versionCode 1
        versionName '1.0.0'
        consumerProguardFiles 'proguard-unity.txt'
    }

    lintOptions {
        abortOnError false
    }

    aaptOptions {
        noCompress = ['.ress', '.resource', '.obb'] + unityStreamingAssets.tokenize(', ')
        ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~"
    }

    packagingOptions {
        doNotStrip '*/armeabi-v7a/*.so'
        doNotStrip '*/arm64-v8a/*.so'
    }
}

def getSdkDir() {
    Properties local = new Properties()
    local.load(new FileInputStream("${rootDir}/local.properties"))
    return local.getProperty('sdk.dir')
}

def BuildIl2Cpp(String workingDir, String targetDirectory, String architecture, String abi, String configuration) {
    exec {
        commandLine(workingDir + "/src/main/Il2CppOutputProject/IL2CPP/build/deploy/netcoreapp3.1/il2cpp.exe",
            "--compile-cpp",
            "--libil2cpp-static",
            "--platform=Android",
            "--architecture=" + architecture,
            "--configuration=" + configuration,
            "--outputpath=" + workingDir + targetDirectory + abi + "/libil2cpp.so",
            "--cachedirectory=" + workingDir + "/build/il2cpp_"+ abi + "_" + configuration + "/il2cpp_cache",
            "--additional-include-directories=" + workingDir + "/src/main/Il2CppOutputProject/IL2CPP/external/bdwgc/include",
            "--additional-include-directories=" + workingDir + "/src/main/Il2CppOutputProject/IL2CPP/libil2cpp/include",
            "--tool-chain-path=" + android.ndkDirectory,
            "--map-file-parser=" + workingDir + "/src/main/Il2CppOutputProject/IL2CPP/MapFileParser/MapFileParser.exe",
            "--generatedcppdir=" + workingDir + "/src/main/Il2CppOutputProject/Source/il2cppOutput",
            "--baselib-directory=" + workingDir + "/src/main/jniStaticLibs/" + abi,
            "--dotnetprofile=unityaot")
        environment "ANDROID_SDK_ROOT", getSdkDir()
    }
    delete workingDir + targetDirectory + abi + "/libil2cpp.sym.so"
    ant.move(file: workingDir + targetDirectory + abi + "/libil2cpp.dbg.so", tofile: workingDir + "/symbols/" + abi + "/libil2cpp.so")
}

android {
    task BuildIl2CppTask {
        doLast {
              BuildIl2Cpp(projectDir.toString().replaceAll('\\\\', '/'), '/src/main/jniLibs/', 'ARMv7', 'armeabi-v7a', 'Release');
              BuildIl2Cpp(projectDir.toString().replaceAll('\\\\', '/'), '/src/main/jniLibs/', 'ARM64', 'arm64-v8a', 'Release');
        }
    }
    afterEvaluate {
        if (project(':unityLibrary').tasks.findByName('mergeDebugJniLibFolders'))
            project(':unityLibrary').mergeDebugJniLibFolders.dependsOn BuildIl2CppTask
        if (project(':unityLibrary').tasks.findByName('mergeReleaseJniLibFolders'))
            project(':unityLibrary').mergeReleaseJniLibFolders.dependsOn BuildIl2CppTask
    }
    sourceSets {
        main {
            jni.srcDirs = ["src/main/Il2CppOutputProject"]
        }
    }
}

@mso7nueh
Copy link

mso7nueh commented Jan 7, 2023

Hello. There was a problem with the crash of the application immediately after launch. After the change build.gradle in accordance with the recommendations of @lswd, everything worked! But after each export, the file build.gradle is overwritten and the application starts to crash again, please tell me how it can be fixed.

@timbotimbo
Copy link
Collaborator

@mso7nueh your issue sounds different as this is about building the app, not a crash while running it.
Your crash looks like it is fixed by the change in #722

@timbotimbo timbotimbo added android This issue is specific to the Android Platform. Build This issue refers to the build configuration and builds failing. labels Jan 8, 2023
@ChurikiTenna
Copy link

Try this commandLineArgs

    def commandLineArgs = []
    commandLineArgs.add("--compile-cpp")
    commandLineArgs.add("--platform=Android")
    commandLineArgs.add("--architecture=" + architecture)
    commandLineArgs.add("--outputpath=" + workingDir + "/src/main/jniLibs/" + abi + "/libil2cpp.so")
    commandLineArgs.add("--libil2cpp-static")
    commandLineArgs.add("--baselib-directory=" + workingDir + "/src/main/jniStaticLibs/" + abi)
    commandLineArgs.add("--incremental-g-c-time-slice=3")
    commandLineArgs.add("--configuration=" + configuration)
    //commandLineArgs.add("--dotnetprofile=unityaot-linux")
    //commandLineArgs.add("--enable-debugger")
    //commandLineArgs.add("--profiler-report")
    //commandLineArgs.add("--profiler-output-file=" + workingDir + "/build/il2cpp_"+ abi + "_" + configuration + "/il2cpp_conv.traceevents")
    commandLineArgs.add("--print-command-line")
    commandLineArgs.add("--additional-include-directories=" + workingDir + "/src/main/Il2CppOutputProject/IL2CPP/external/bdwgc/include")
    commandLineArgs.add("--additional-include-directories=" + workingDir + "/src/main/Il2CppOutputProject/IL2CPP/libil2cpp/include")
    commandLineArgs.add("--generatedcppdir=" + workingDir + "/src/main/Il2CppOutputProject/Source/il2cppOutput")
    commandLineArgs.add("--cachedirectory=" + workingDir + "/build/il2cpp_"+ abi + "_" + configuration + "/il2cpp_cache")
    commandLineArgs.add("--tool-chain-path=" + android.ndkDirectory)
    staticLibraries.eachWithIndex {fileName, i->
        commandLineArgs.add("--additional-libraries=" + workingDir + "/src/main/jniStaticLibs/" + abi + "/" + fileName)
    }

This solved the error, but app crashes right after launch with 'Lost connection to device.' and loads of log.
This has never happened before..

Log:

.... continue ....
      #130 pc 0000000000ac4b7c  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (com.android.internal.os.ZygoteInit.main+3548)
      #131 pc 0000000000360880  /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+640) (BuildId: 3cd43dfd934282c944e52afdac5120fb)
      #132 pc 00000000004944cc  /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeWithVarArgs<_jmethodID*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+516) (BuildId: 3cd43dfd934282c944e52afdac5120fb)
      #133 pc 0000000000553530  /apex/com.android.art/lib64/libart.so (art::JNI<true>::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+112) (BuildId: 3cd43dfd934282c944e52afdac5120fb)
      #134 pc 00000000000c0ce8  /system/lib64/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+120) (BuildId: adaff87eb38d1f1656cbc504539d7ceb)
      #135 pc 00000000000cd444  /system/lib64/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+852) (BuildId: adaff87eb38d1f1656cbc504539d7ceb)
      #136 pc 0000000000002574  /system/bin/app_process64 (main+1300) (BuildId: 2b60f9748c99330a43e8a5f1f84b8bcc)
      #137 pc 0000000000084d70  /apex/com.android.runtime/lib64/bionic/libc.so (__libc_init+96) (BuildId: 223ef8d5f0fe5d949ebf7e38286d3677)
Lost connection to device.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
android This issue is specific to the Android Platform. Build This issue refers to the build configuration and builds failing.
Projects
None yet
Development

No branches or pull requests

10 participants