From a458ea510569c1c8ef0ca67b8af21ccf9447c9a3 Mon Sep 17 00:00:00 2001 From: hch <305670599@qq.com> Date: 星期日, 19 十一月 2023 20:45:35 +0800 Subject: [PATCH] 0312 编译版本为30 要留意兼容性问题 --- SdkProject/library/build.gradle | 209 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 198 insertions(+), 11 deletions(-) diff --git a/SdkProject/library/build.gradle b/SdkProject/library/build.gradle index 9eefdaf..f562d57 100644 --- a/SdkProject/library/build.gradle +++ b/SdkProject/library/build.gradle @@ -1,19 +1,59 @@ plugins { id 'com.android.library' + id 'com.google.gms.google-services' } +def rootPath = rootProject.getRootDir().getAbsolutePath() +def channelPath = "${rootPath}/channel/${CHANNEL_NAME}" + +def applyGradle(String path) { + path = "${path}.gradle" + File file = file(path) + if (file.exists()) + apply from: path +} + +applyGradle("${rootPath}/utils")//宸ュ叿鑴氭湰 +applyGradle("${channelPath}/build")//娓犻亾鑴氭湰 +applyGradle("${channelPath}/deps")//娓犻亾鐨勮繙绋嬩緷璧栬剼鏈� + +Properties localProp = loadProperties('local')//鏈湴閰嶇疆 +Properties channelProp = loadProperties("${channelPath}/config")//娓犻亾鎵�灞炵殑閰嶇疆 + +def outPutPath = localProp.getProperty("OUTPUT_PATH")//宸ョ▼sdk杈撳嚭璺緞 + +//褰撳墠娓犻亾鎵�搴旂敤鐨勬彃浠跺悕 +def plugins = channelProp.getProperty("PLUGINS").split(';') +//鎻掍欢鑴氭湰 +plugins.each { + applyGradle("${rootPath}/plugins/${it}/build") + applyGradle("${rootPath}/plugins/${it}/deps") +} + +//娓犻亾闇�瑕佽鐩栦富鐩綍鐨刯ava鏂囦欢 +def channelJavaFiles = getAllFiles(new ArrayList<File>(), "${channelPath}/java") + android { - compileSdkVersion 29 - buildToolsVersion "30.0.2" + compileSdkVersion 30 + buildToolsVersion "30.0.3" defaultConfig { minSdkVersion 21 - targetSdkVersion 29 + targetSdkVersion 31 versionCode 1 versionName "1.0" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" +// testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" consumerProguardFiles "consumer-rules.pro" + multiDexEnabled true + } + + + flavorDimensions "version" + productFlavors { + merger { + dimension "version" + } } buildTypes { @@ -26,14 +66,161 @@ sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } + packagingOptions {exclude 'META-INF/rxjava.properties'} + lintOptions { + checkReleaseBuilds false + abortOnError false + } + + //鍚堝苟璧勬簮 + sourceSets { + main { + java { + //鍓旈櫎涓荤洰褰曚笅锛屾笭閬撻噸澶嶇殑绫� + channelJavaFiles.each { + def tag = "java\\" + def str = it.getAbsolutePath() + def str1 = str.substring(0, str.indexOf(tag)) + def str2 = str.substring(str1.length() + tag.length(), str.length()) + exclude str2 + } + } + } + merger { + java { + srcDirs "${channelPath}/java" + } + jniLibs.srcDirs "${channelPath}/libs" + res.srcDirs "${channelPath}/res" + manifest { + File file = file("${channelPath}/AndroidManifest.xml") + if (file.exists()) + srcFile "${channelPath}/AndroidManifest.xml" + } + //鍚堝苟鎻掍欢 + plugins.each { + def pluginPath = "${rootPath}/plugins/${it}" + java.srcDirs "${pluginPath}/java" + jniLibs.srcDirs "${pluginPath}libs" + res.srcDirs "${pluginPath}/res" + //娓呭崟鍙兘鍚堝苟涓�涓紝鎵�鏈夋彃浠剁殑娓呭崟闇�瑕佹墜鍔ㄥ鍒跺埌瀵瑰簲鐨勬笭閬撻噷 + } + } + } +} + +android.libraryVariants.all { variant -> + variant.outputs.all { + outputFileName = "library-${buildType.name}-${CHANNEL_NAME}.aar" + } +} + +//鎷疯礉娓呭崟鏂囦欢 +task copyDebugManifest(type: Copy) { + from zipTree("build/outputs/aar/library-debug-${CHANNEL_NAME}.aar") + include "AndroidManifest.xml" + into "${outPutPath}\\${CHANNEL_NAME}\\debug" +} +//鎷疯礉娓呭崟鏂囦欢 +task copyManifest(type: Copy) { + dependsOn 'copyDebugManifest' + from zipTree("build/outputs/aar/library-release-${CHANNEL_NAME}.aar") + include "AndroidManifest.xml" + into "${outPutPath}\\${CHANNEL_NAME}\\release" +} + +//鎷疯礉debug aar +task copyDebugSdk(type: Copy) { + from "build/outputs/aar/" + include "library-debug-${CHANNEL_NAME}.aar" + into "${outPutPath}\\${CHANNEL_NAME}\\debug\\libs\\" +} + +task copyReleaseSdk(type: Copy) { + from "build/outputs/aar/" + include "library-release-${CHANNEL_NAME}.aar" + into "${outPutPath}\\${CHANNEL_NAME}\\release\\libs\\" +} + +task deleteSdk() { + delete "${outPutPath}\\${CHANNEL_NAME}\\debug" + delete "${outPutPath}\\${CHANNEL_NAME}\\release" +} + +//鎵ц鎵撳寘浠诲姟浠ュ強鎷疯礉鍒板閮� +task assembleAndCopySdk() { + dependsOn 'assemble' + dependsOn deleteSdk + dependsOn copyDebugSdk + dependsOn copyReleaseSdk + + tasks.findByName('deleteSdk').mustRunAfter 'assembleMerger' + tasks.findByName('copyDebugSdk').mustRunAfter 'deleteSdk' + tasks.findByName('copyReleaseSdk').mustRunAfter 'deleteSdk' + + //瀵煎嚭鎵�鏈夊閮ㄥ紩鐢� + String content = "" + def deps = file("${channelPath}\\deps.gradle") + deps.eachLine { line -> + if (line != null) + content += line + "\n" + } + plugins.each { + deps = file("${rootPath}/plugins/${it}/deps.gradle") + if(deps.exists()){ + deps.eachLine { line -> + if (line != null) + content += line + "\n" + } + } + } + def dir = new File("${outPutPath}\\${CHANNEL_NAME}") + def libraries = new File("${outPutPath}\\${CHANNEL_NAME}\\deps.gradle") + dir.mkdir() + if (libraries.exists()) + libraries.delete() + if (!libraries.exists()) + libraries.createNewFile() + libraries.text = content } dependencies { - implementation 'androidx.appcompat:appcompat:1.2.0' - implementation 'com.google.android.material:material:1.2.1' - testImplementation 'junit:junit:4.+' - androidTestImplementation 'androidx.test.ext:junit:1.1.2' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' + implementation 'androidx.annotation:annotation:1.0.0' + testImplementation 'junit:junit:4.13.2' + //noinspection GradleCompatible +// implementation 'com.android.support:appcompat-v7:28.0.0' - implementation files('libs/unity-classes.jar') -} \ No newline at end of file +// implementation 'com.github.pqpo:Log4a:1.4.2@aar' + + implementation fileTree(dir: "../channel/${CHANNEL_NAME}/libs/", include: ['*.jar']) + plugins.each { + implementation fileTree(dir: "${rootPath}/plugins/${it}/libs/", include: ['*.jar']) + } + implementation fileTree(dir: 'libs', include: ['*.jar'], exclude: ['unity-classes.jar']) + compileOnly files('libs/unity-classes.jar') + + implementation('androidx.appcompat:appcompat:1.0.0') { + force = true + } + + //sdk鎵�闇�渚濊禆 + implementation 'androidx.recyclerview:recyclerview:1.0.0' + implementation 'com.squareup.okhttp3:logging-interceptor:3.12.0' + //firebase + implementation(platform("com.google.firebase:firebase-bom:32.2.2")) + implementation 'com.google.firebase:firebase-analytics' + implementation 'com.google.firebase:firebase-auth' + // google + implementation 'com.google.android.gms:play-services-auth:20.6.0' + // facebook + implementation 'com.facebook.android:facebook-login:16.2.0' + implementation 'androidx.activity:activity-compose:1.3.1' + // google 鏀粯 + implementation 'com.android.billingclient:billing:6.0.1' + implementation 'androidx.fragment:fragment:1.3.2' + // adjust 锛圴1.0.2鏂板锛� + implementation 'com.adjust.sdk:adjust-android:4.33.5' + implementation 'com.android.installreferrer:installreferrer:2.2' + implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1' + implementation 'com.google.android.gms:play-services-appset:16.0.2' +} -- Gitblit v1.8.0