flutter-unity-view-widget icon indicating copy to clipboard operation
flutter-unity-view-widget copied to clipboard

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

Open asikpro13 opened this issue 3 years ago • 13 comments

/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 avatar Feb 27 '22 13:02 asikpro13

I have the same error !

NTC avatar Feb 27 '22 13:02 NTC

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

IluhinDotPro avatar Mar 03 '22 14:03 IluhinDotPro

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

NTC avatar Mar 03 '22 16:03 NTC

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)
    }

IluhinDotPro avatar Mar 03 '22 17:03 IluhinDotPro

Thank you ! it works !

NTC avatar Mar 03 '22 19:03 NTC

@IluhinDotPro It works. Thank you!

mvn-daipham2-hn avatar Mar 04 '22 02:03 mvn-daipham2-hn

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.

yfunk avatar Mar 08 '22 21:03 yfunk

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"]
    }
}

}`

图片

lswd avatar Mar 11 '22 17:03 lswd

could you share the full gradle file

khal-it avatar Jun 07 '22 14:06 khal-it

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"]
        }
    }
}

IluhinDotPro avatar Jun 07 '22 15:06 IluhinDotPro

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.

mso7nueh avatar Jan 07 '23 15:01 mso7nueh

@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 https://github.com/juicycleff/flutter-unity-view-widget/pull/722

timbotimbo avatar Jan 07 '23 17:01 timbotimbo

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.

ChurikiTenna avatar Oct 03 '23 11:10 ChurikiTenna