plugins { id 'com.android.application' } android { namespace 'com.fongmi.android.tv' compileSdk 36 flavorDimensions = ["mode", "abi"] signingConfigs { release { storeFile file("../keystore/release.jks") storePassword "xmbox123" keyAlias "xmbox" keyPassword "xmbox123" // 同时启用v1、v2、v3、v4签名以确保最佳兼容性 enableV1Signing true enableV2Signing true enableV3Signing true enableV4Signing true } } defaultConfig { applicationId "com.fongmi.android.tv" minSdk 24 //noinspection ExpiredTargetSdkVersion targetSdk 28 versionCode 309 versionName "3.0.9" javaCompileOptions { annotationProcessorOptions { arguments = ["room.schemaLocation": "$projectDir/schemas".toString(), "eventBusIndex": "com.fongmi.android.tv.event.EventIndex"] } } } productFlavors { leanback { dimension "mode" } mobile { dimension "mode" } arm64_v8a { dimension "abi" ndk { abiFilters "arm64-v8a" } } armeabi_v7a { dimension "abi" ndk { abiFilters "armeabi-v7a" } } } buildFeatures { buildConfig true viewBinding true } buildTypes { release { minifyEnabled true shrinkResources true signingConfig signingConfigs.release proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } packagingOptions { resources { exclude 'META-INF/beans.xml' exclude 'META-INF/versions/9/OSGI-INF/MANIFEST.MF' } jniLibs { // 解决重复的JNI库问题,只保留第一个找到的 pickFirsts += [ '**/libavcodec.so', '**/libavutil.so', '**/libmedia3ext.so', '**/libquickjs-android-wrapper.so', '**/libswresample.so', '**/libswscale.so' ] } } android.applicationVariants.configureEach { variant -> variant.outputs.configureEach { output -> outputFileName = "${variant.productFlavors[0].name}-${variant.productFlavors[1].name}.apk" } } configurations.configureEach { resolutionStrategy { force 'com.squareup.okhttp3:okhttp:' + okhttpVersion } } lint { disable 'UnsafeOptInUsageError' } compileOptions { coreLibraryDesugaringEnabled true sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } } dependencies { implementation fileTree(dir: "libs", include: ["*.aar"]) implementation project(':catvod') // implementation project(':chaquo') // 移除Python支持减少8-10MB体积 implementation project(':quickjs') implementation 'androidx.appcompat:appcompat:1.7.0' implementation 'androidx.media:media:1.7.0' implementation 'androidx.media3:media3-common:' + media3Version implementation 'androidx.media3:media3-container:' + media3Version implementation 'androidx.media3:media3-database:' + media3Version implementation 'androidx.media3:media3-datasource:' + media3Version implementation 'androidx.media3:media3-datasource-okhttp:' + media3Version implementation 'androidx.media3:media3-datasource-rtmp:' + media3Version implementation 'androidx.media3:media3-decoder:' + media3Version implementation 'androidx.media3:media3-effect:' + media3Version implementation 'androidx.media3:media3-exoplayer:' + media3Version implementation 'androidx.media3:media3-exoplayer-dash:' + media3Version implementation 'androidx.media3:media3-exoplayer-hls:' + media3Version implementation 'androidx.media3:media3-exoplayer-rtsp:' + media3Version implementation 'androidx.media3:media3-exoplayer-smoothstreaming:' + media3Version implementation 'androidx.media3:media3-extractor:' + media3Version implementation 'androidx.media3:media3-ui:' + media3Version implementation 'androidx.room:room-runtime:2.6.1' implementation 'cat.ereza:customactivityoncrash:2.4.0' implementation 'io.github.anilbeesetti:nextlib-media3ext:1.8.0-0.9.0' implementation 'com.github.bassaer:materialdesigncolors:1.0.0' implementation 'com.github.bumptech.glide:glide:4.16.0' implementation 'com.github.bumptech.glide:annotations:4.16.0' implementation('com.github.bumptech.glide:avif-integration:4.16.0') { exclude group: 'org.aomedia.avif.android', module: 'avif' } implementation 'com.github.bumptech.glide:okhttp3-integration:4.16.0' implementation 'com.github.jahirfiquitiva:TextDrawable:1.0.3' implementation 'com.github.thegrizzlylabs:sardine-android:0.9' implementation 'com.github.teamnewpipe:NewPipeExtractor:v0.24.8' implementation 'com.google.android.material:material:1.11.0' implementation 'com.google.zxing:core:3.5.3' implementation 'com.guolindev.permissionx:permissionx:1.7.1' implementation 'com.hierynomus:smbj:0.13.0' implementation 'io.antmedia:rtmp-client:3.1.0' implementation 'javax.servlet:javax.servlet-api:3.1.0' implementation 'org.aomedia.avif.android:avif:1.1.1.14d8e3c4' implementation 'org.eclipse.jetty:jetty-client:8.1.21.v20160908' implementation('org.eclipse.jetty:jetty-server:8.1.21.v20160908') { exclude group: 'org.eclipse.jetty.orbit', module: 'javax.servlet' } implementation('org.eclipse.jetty:jetty-servlet:8.1.21.v20160908') { exclude group: 'org.eclipse.jetty.orbit', module: 'javax.servlet' } implementation 'org.fourthline.cling:cling-core:2.1.1' implementation 'org.fourthline.cling:cling-support:2.1.1' implementation 'org.greenrobot:eventbus:3.3.1' implementation 'org.nanohttpd:nanohttpd:2.3.1' implementation('org.simpleframework:simple-xml:2.7.1') { exclude group: 'stax', module: 'stax-api' exclude group: 'xpp3', module: 'xpp3' } leanbackImplementation 'androidx.leanback:leanback:1.2.0' leanbackImplementation 'com.github.JessYanCoding:AndroidAutoSize:1.2.1' mobileImplementation 'androidx.biometric:biometric:1.1.0' mobileImplementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' mobileImplementation 'com.google.android.flexbox:flexbox:3.0.0' mobileImplementation('com.journeyapps:zxing-android-embedded:4.3.0') { transitive = false } annotationProcessor 'androidx.room:room-compiler:2.6.1' // annotationProcessor 'com.github.bumptech.glide:compiler:4.16.0' annotationProcessor 'org.greenrobot:eventbus-annotation-processor:3.3.1' coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs_nio:2.1.5' implementation 'io.noties.markwon:core:4.6.2' implementation 'com.airbnb.android:lottie:5.2.0' }