apply plugin: 'com.android.library' dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) //内购 //implementation 'com.android.billingclient:billing:7.0.0' def lifecycle_version = "2.0.0" api "androidx.lifecycle:lifecycle-extensions:$lifecycle_version" api "androidx.lifecycle:lifecycle-runtime:$lifecycle_version" annotationProcessor "androidx.lifecycle:lifecycle-compiler:$lifecycle_version" //google implementation 'com.google.android.gms:play-services-base:17.6.0' implementation 'com.google.android.gms:play-services-auth:20.2.0' implementation "com.google.android.gms:play-services-games-v2:+" configurations.all { resolutionStrategy { force 'com.google.android.gms:play-services-tasks:18.0.2' } } implementation "androidx.core:core:1.1.0" implementation "androidx.localbroadcastmanager:localbroadcastmanager:1.0.0" //应用内评论 implementation 'com.google.android.play:review:2.0.1' //gosn implementation 'com.google.code.gson:gson:2.8.6' implementation 'com.facebook.android:facebook-core:16.1.3' implementation 'com.facebook.android:facebook-login:16.1.3' implementation 'com.facebook.android:facebook-share:16.1.3' implementation 'com.facebook.android:facebook-gamingservices:16.1.3' implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'androidx.annotation:annotation:1.1.0' implementation 'androidx.appcompat:appcompat:1.1.0' //FireBase implementation platform('com.google.firebase:firebase-bom:32.1.1') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-config' implementation 'com.google.firebase:firebase-crashlytics' //appsflyer implementation 'com.appsflyer:af-android-sdk:6.12.1' implementation 'com.android.installreferrer:installreferrer:2.2' implementation 'com.appsflyer:adrevenue:6.9.0' //okhttp implementation("com.squareup.okhttp3:okhttp:4.9.2") implementation("com.squareup.okhttp3:logging-interceptor:4.9.2") implementation 'com.alibaba:fastjson:1.2.80' //广告 implementation 'com.google.android.gms:play-services-ads:22.6.0' implementation 'com.google.ads.mediation:facebook:6.16.0.0' implementation 'com.google.ads.mediation:applovin:12.1.0.1' implementation 'com.google.ads.mediation:ironsource:7.7.0.1' implementation ('com.google.ads.mediation:tapjoy:13.0.1.0') { exclude group: 'com.google.android.gms', module: 'services-ads-identifier' } //implementation 'com.unity3d.ads:unity-ads:4.9.2' implementation 'com.google.ads.mediation:unity:4.9.2.0' implementation 'com.google.ads.mediation:vungle:6.12.1.1' implementation 'com.google.ads.mediation:pangle:5.7.0.3.0' implementation("com.google.android.ump:user-messaging-platform:2.2.0") implementation(name: 'UnityAds', ext:'aar') implementation(name: 'common', ext:'aar') implementation(name: 'youloft-notification-release', ext:'aar') implementation(name: 'youloft-core-release', ext:'aar') implementation(name: 'youloft-googlepay-release', ext:'aar') implementation(name: 'youloft-ad-release', ext:'aar') implementation(name: 'billing-5.2.1', ext:'aar') } android { namespace "com.unity3d.player" ndkPath "D:/tuanJieEditor/2022.3.48t1/Editor/Data/PlaybackEngines/AndroidPlayer/NDK" compileSdkVersion 33 buildToolsVersion '34.0.0' compileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } defaultConfig { minSdkVersion 22 targetSdkVersion 33 ndk { abiFilters 'armeabi-v7a', 'arm64-v8a' } versionCode 1 versionName '1.0' consumerProguardFiles 'proguard-tuanjie.txt' } lintOptions { abortOnError false } aaptOptions { noCompress = ['.tj3d', '.ress', '.resource', '.obb', '.bundle', '.tuanjieexp'] + tuanjieStreamingAssets.tokenize(', ') ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:!CVS:!thumbs.db:!picasa.ini:!*~" } packagingOptions { doNotStrip '*/armeabi-v7a/*.so' doNotStrip '*/arm64-v8a/*.so' jniLibs { useLegacyPackaging true } } } def getSdkDir() { Properties local = new Properties() local.load(new FileInputStream("${rootDir}/local.properties")) return local.getProperty('sdk.dir') } def BuildIl2Cpp(String workingDir, String configuration, String architecture, String abi, String[] staticLibraries) { 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("--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("--profiler-report") commandLineArgs.add("--profiler-output-file=" + workingDir + "/build/il2cpp_"+ abi + "_" + configuration + "/il2cpp_conv.traceevents") commandLineArgs.add("--print-command-line") commandLineArgs.add("--data-folder=" + workingDir + "/src/main/Il2CppOutputProject/Source/il2cppOutput/data") 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) } def executableExtension = "" if (org.gradle.internal.os.OperatingSystem.current().isWindows()) { executableExtension = ".exe" commandLineArgs = commandLineArgs*.replace('\"', '\\\"') } exec { executable workingDir + "/src/main/Il2CppOutputProject/IL2CPP/build/deploy/il2cpp" + executableExtension args commandLineArgs environment "ANDROID_SDK_ROOT", getSdkDir() } delete workingDir + "/src/main/jniLibs/" + abi + "/libil2cpp.sym.so" ant.move(file: workingDir + "/src/main/jniLibs/" + abi + "/libil2cpp.dbg.so", tofile: workingDir + "/symbols/" + abi + "/libil2cpp.so") } android { task BuildIl2CppTask { doLast { BuildIl2Cpp(projectDir.toString().replaceAll('\\\\', '/'), 'Release', 'armv7', 'armeabi-v7a', [ ] as String[]); BuildIl2Cpp(projectDir.toString().replaceAll('\\\\', '/'), 'Release', 'arm64', 'arm64-v8a', [ ] as String[]); } } afterEvaluate { if (project(':tuanjieLibrary').tasks.findByName('mergeDebugJniLibFolders')) project(':tuanjieLibrary').mergeDebugJniLibFolders.dependsOn BuildIl2CppTask if (project(':tuanjieLibrary').tasks.findByName('mergeReleaseJniLibFolders')) project(':tuanjieLibrary').mergeReleaseJniLibFolders.dependsOn BuildIl2CppTask } sourceSets { main { jni.srcDirs = ["src/main/Il2CppOutputProject"] } } }