مشكله ربما تقابلكم
وأنا شغال على مشروع تحميل الفييدوهات قابلتني مشكلة مع
Package photo_manager.
الـ Build بقى يقع بسبب اختلاف إصدار الـ
Java/Kotlin
اللي الـ Package كانت بتستخدمه عن المشروع.
بدل ما أعدل ملفات الـ Package نفسها (وده هيروح مع أي Update)
استخدمت Gradle عشان أطبق الإعدادات عليها وقت الـ
Build
تضيف الكود ده فى ال
build.gradle.kts
subprojects {
if (project.name == "photo_manager") {
val configureAction = Action<Project> {
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile>().configureEach {
compilerOptions {
jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17)
}
}
tasks.withType<JavaCompile>().configureEach {
sourceCompatibility = "17"
targetCompatibility = "17"
}
}
if (state.executed) {
configureAction.execute(this)
} else {
afterEvaluate(configureAction)
}
}
}
هل ده آمن؟
آه طالما الـ Package أصلًا متوافقة مع Java 17، فده مجرد Workaround بيخليها تستخدم نفس إعدادات المشروع، وبيحل مشكلة الـ Build بدون ما تعدل ملفاتها.
ولو الـ Package مش بتدعم Java 17؟
ساعتها الكود ده مش هيضيف دعم من عنده، وممكن تفضل المشكلة موجودة أو تظهر Errors تانية، لأن عدم التوافق هيكون من كود الـ Package نفسه، مش من إعدادات الـ Build.
في الحالة دي الحل الصحيح هو:
تحديث الـ Package لإصدار أحدث بيدعم Java 17.
أو استخدام إصدار Java المناسب اللي مطور الـ Package موصي بيه.
أو انتظار Fix من مطور الـ Package لو المشكلة من عنده.
يعني الكود ده بيوحد إعدادات الـ Build، لكنه مش بيحول Package غير متوافقة إلى Package متوافقة.
يمكن حد يقابل نفس المشكلة، فقلت أشارك الحل.
Post #2461
2.49K
- 🏆 5
- ⚡ 1