ไม่สามารถ inline bytecode ที่สร้างด้วย JVM เป้าหมาย 1.8 เป็น bytecode ที่กำลังสร้างด้วย JVM target 1.6


481

เมื่อพยายามเรียกใช้ตัวอย่าง CorDapp ( https://github.com/corda/cordapp-example ) ผ่าน IntelliJ ฉันได้รับข้อผิดพลาดดังต่อไปนี้:

ไม่สามารถ inline bytecode ที่สร้างด้วย JVM เป้าหมาย 1.8 เป็น bytecode ที่กำลังสร้างด้วย JVM target 1.6

ฉันจะแก้ไขการตั้งค่า IntelliJ เพื่อให้ bytecode ทั้งหมดถูกสร้างขึ้นด้วยเป้าหมาย JVM เดียวกันได้อย่างไร


5
ฉันสามารถแก้ไขปัญหานี้ได้โดยการเพิ่มห้องสมุดนี้ไปยังการbuild.gradleพึ่งพา {คอมไพล์ ("org.jetbrains.kotlin: kotlin-stdlib-jdk8")}
Munish Chandel

1
@unishChandel นั่นไม่เพียงพอ เราต้องทำตามคำแนะนำด้านล่างนี้ด้วย ...
IgorGanapolsky

คำตอบ:


1028

app / build.gradle

android {
    ...
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    kotlinOptions {
        jvmTarget = JavaVersion.VERSION_1_8.toString()
    }
}

GL

ใช้คุณสมบัติภาษา Java 8


31
นี่ควรเป็นโซลูชันที่ตรวจสอบแล้ว
Phil

9
ณ วันนี้และ Android Studio v3.5 นี่เป็นทางออกเดียวที่ทำงานได้หลังจากลองทั้งหมดที่เหลือ การตั้งค่าที่ค่อนข้างแปลกในการตั้งค่า> Kotlin Compiler นั้นไม่มีผล
user3399299

53
เพียงแค่kotlinOptions { jvmTarget = "1.8" }ควรจะพอเพียง
Petter

2
ทำงานได้ดีและคำตอบนั้นเป็นคำอธิบายที่อธิบายตัวเองและรัดกุม
Vikas Pandey

4
จากนั้นควร "ทำให้แคชใช้ไม่ได้และรีสตาร์ท"
B-GangsteR

214

คุณสามารถแก้ไขปัญหานี้ได้ดังนี้:

  • เปิดการตั้งค่า IntelliJ
  • ไปBuild, Execution, Deployment> Compiler> Kotlin Compiler แต่ Other Settings > Kotlin compilerถ้า Android ดิโอ>3.4
  • เปลี่ยนTarget JVM versionไป1.8
  • คลิก Apply

6
ฉันได้ตั้งค่านี้เป็น 1.8 แล้ว แต่ฉันยังคงเห็นข้อผิดพลาดนี้เมื่อก้าวผ่านจุดพัก ฉันเห็นสิ่งนี้เป็นหลักเมื่อกดปุ่มสอบถามตู้ มีข้อเสนอแนะเพิ่มเติมหรือไม่ ดูเหมือนว่าเป้าหมาย JVM บิตนี้จะไม่สามารถแก้ไขได้ทั้งหมด
Arsalan Khalid

38
บนโครงสร้างโครงการให้แน่ใจว่าคุณยังเปลี่ยนTarget platformไปJVM 1.8บนKotlinFacet ภายใต้Generalแท็บ
Anyul Rivas

7
ข้อผิดพลาดนี้อาจปรากฏขึ้นหากมีการอ้างอิงที่ไม่ได้แก้ไข !
programaths

5
สำหรับฉันแล้วการKotlin Compilerตั้งค่าถูกวางไว้ในOther Settingsส่วนของจริง
qwertyfinger

10
หากเริ่มต้นใหม่หลังจากนำไปใช้ไม่เพียงพอ→รีสตาร์ท & ทำให้แคชใช้ไม่ได้
Bartek Lipinski

104

คุณควรกำหนดค่าสิ่งต่อไปนี้ใน build.gradle

tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
    kotlinOptions {
        jvmTarget = "1.8"
    }
}

14
หรืออีกทางเลือกหนึ่งใน Gradle Kotlin DSL:tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> { kotlinOptions.jvmTarget = "1.8" }
breandan

มีความคิดว่าจะให้ใช้งานkotlin-androidปลั๊กอินได้อย่างไร?
ZeroDivide

ทำงานได้โดยไม่ยุ่งยากมาก ฉันอยากจะแนะนำมัน
Mitch

ฉันมีสิ่งนี้ใน build.gradle แต่อย่างใด IDEA เขียนทับการตั้งค่านี้ คำตอบจาก Saeed ทำงานให้ฉัน
nils petersohn

เพิ่มสิ่งนี้ลงในส่วน android {} ของ Gradle ระดับแอปของคุณ
Parag Kadam

80

ในกรณีของฉันเพียงแค่เปลี่ยน TARET JVM Version ดังนี้: File> Setting> Kotlin Compiler> Target JVM Version> 1.8 ไม่ได้ช่วยอะไร อย่างไรก็ตามมันจะแก้ไขข้อผิดพลาดเวลาในการรวบรวม แต่ล้มเหลวขณะรันไทม์

ฉันยังต้องเพิ่มการติดตามในไฟล์ build.gradle ของแอปเพื่อให้ทำงานได้

 android {
     // Other code here...
     kotlinOptions {
        jvmTarget = "1.8"
     }
 }

2
ใช้งานได้ดี ขอบคุณ
dave o grady

ทำงาน! ขอบคุณ
Waldmann

55

เมื่อโซลูชันอื่นไม่ทำงานสำหรับคุณ (การเปลี่ยนเวอร์ชั่น JVM ในการตั้งค่าคอมไพเลอร์และเพิ่มjvmTargetเข้าไปในของคุณbuild.gradle) เนื่องจาก.imlไฟล์ของคุณพยายามบังคับให้กำหนดค่าคุณสามารถเปลี่ยนแพลตฟอร์มเป้าหมายจากการตั้งค่าโครงการ

  • เปิด File > Project Structure
  • ไปที่Facetsใต้Project Settings
    • ถ้ามันว่างแล้วคลิกที่+ปุ่มเล็ก
  • คลิกที่โมดูล / โมดูล Kotlin ของคุณ
  • เปลี่ยนTarget PlatformไปJVM 1.8(ยังดีกว่าที่จะตรวจสอบUse project settingsตัวเลือก)

3
ฉันไม่พบสิ่งนี้หรือส่วน 'แง่มุม' ใน Android Studio ... 🤔ฉันต้องแก้ไข app.iml ด้วยตนเอง ฉันจะตั้งค่า<configuration version="3" platform="JVM 1.8" useProjectSettings="false">การtrueและการทำงาน อย่างไรก็ตามไฟล์ยังคงเปลี่ยนกลับ!
Aphex

1
@Aphex เป็นจริงภายใต้ "ไฟล์"> "โครงสร้างโครงการ" จากนั้นภายใต้ "การตั้งค่าโครงการ"> "Facets" ฉันไม่มีอะไรเลยฉันเลยคลิก "+"> "Kotlin"> เลือกโครงการของฉัน นั่นทำเพื่อฉัน :)
Nicolas Guillaume

สิ่งนี้ใช้ได้กับฉัน แต่ถูกบังคับให้กลับเป็น 1.6 ทุกครั้งที่ฉันเพิ่มไฟล์ build.gradle.kts
Lou Morda

มีวิธีที่จะกำหนดค่าและรับจากไฟล์ gradle หรือไม่? IMHO การกำหนดค่าผิดพลาดนี้เป็นข้อบกพร่องในระบบ Intellij
Jilles van Gurp

35

ในกรณีของฉันรหัสนี้ใช้งานไม่ได้จนกว่าฉันจะย้ายapply plugin: 'kotlin-android'จากล่างขึ้นบน

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'

android {
    ...
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

kotlinOptions {jvmTarget = "1.8"} Didi เคล็ดลับสำหรับฉันขอบคุณ
Didi

32

ใน Android Studio 4.3.2 การเพิ่มผ่านขั้นตอนด้านล่างไม่ทำงาน

  1. เปิดการตั้งค่า IntelliJ
  2. ไปที่Build, Execution, Deployment > Compiler > Kotlin Compiler BUT การตั้งค่าอื่น ๆ > Kotlin คอมไพเลอร์ถ้า Android Studio> 3.4
  3. เปลี่ยนเวอร์ชั่นเป้าหมาย JVMเป็น 1.8
  4. คลิกนำไปใช้

เหตุผลก็คือสตูดิโอ Android ไม่สามารถเพิ่มรหัสด้านล่างในไฟล์โมดูลระดับ Gradle โปรดเพิ่มด้วยตนเอง

kotlinOptions {
    jvmTarget = "1.8"
}

เพียงแค่สำหรับ addon ให้ค้นหาเวอร์ชั่น Target JVMในการค้นหา studio android มันจะนำคุณไปสู่ตัวเลือกโดยตรง ป้อนคำอธิบายรูปภาพที่นี่


การเพิ่มด้วยตนเองเท่านั้นมันใช้ได้สำหรับฉัน ด้วยเหตุผลบางอย่าง android studio นั้นมีข้อผิดพลาดและไม่พิจารณาการเปลี่ยนแปลงที่นำมาใช้เว้นแต่ว่าเราจะเริ่มต้น IDE ใหม่โดยการลบแคชทั้งหมด
Karan Sharma

28

ภาพที่มีค่าพันคำ

ภาพที่มีค่าพันคำ


การค้นหาในแผงการตั้งค่าจะแสดงตัวเลือกนี้ด้วย ขอบคุณสำหรับสิ่งนี้มีประโยชน์จริงๆ!
Princeps Polycap

ไม่ช่วยฉัน
Waldmann

26

ก.พ. 2020
Android 3.4+
ไปที่ไฟล์ -> การตั้งค่า -> Kotlin Compiler -> Target JVM Version> ตั้งค่าเป็น 1.8 จากนั้นตรวจสอบให้แน่ใจว่าทำ File -> ซิงค์โครงการที่มีไฟล์ Gradle

หรือเพิ่มลงในbuild.gradle (โมดูล: แอป)ในบล็อกandroid :

kotlinOptions {
           jvmTarget = "1.8"
         }

เพียงแค่ "ซิงค์โครงการกับไฟล์ Gradle" ใช้งานได้สำหรับฉัน ..
Akash Bisariya

ยืนยันว่าคุณต้องทำไฟล์ -> ซิงค์โครงการด้วยไฟล์ Gradle แล้วใช้งานได้
Irfandi D. Vendy

19

ตามที่เขียนไว้ในการใช้-Mavenเอกสารจากเว็บไซต์ Kotlin:

คุณต้องใส่<kotlin.compiler.jvmTarget>1.8</kotlin.compiler.jvmTarget>เข้าไปในส่วนคุณสมบัติของ pom.xml ของคุณ


19

หากคุณมีแหล่งที่มา / โมดูลจำนวนมากคุณอาจยุ่งยากในการกำหนดค่า jvmTarget สำหรับแต่ละรายการแยกกัน

คุณสามารถกำหนดค่า jvmTarget สำหรับพวกเขาทั้งหมดในครั้งเดียวดังนี้:

tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
    kotlinOptions {
        jvmTarget = "1.8"
    }
}

ตัวอย่างนี้สามารถใช้กับระดับบนสุดของไฟล์ gradle.build ของคุณ

Reimport All Gradle Importsหลังจากการแก้ไขไฟล์ gradle หากต้องการตรวจสอบว่าใช้งานได้หรือไม่ให้เปิดProject Structureและตรวจสอบว่า IntelliJ ได้รับมอบหมายอย่างถูกต้องให้JVM 1.8กับโมดูล Kotlin ทั้งหมด ควรมีลักษณะเช่นนี้:

โครงสร้างโครงการ

ฉันจะไม่แนะนำให้เปลี่ยนแพลตฟอร์มโดยตรงใน IntelliJ เพราะใครก็ตามที่โคลนโครงการของคุณเป็นครั้งแรกน่าจะประสบปัญหาเดียวกัน การกำหนดค่าอย่างถูกต้องในระดับเกรนมีข้อดีที่ IntelliJ จะทำงานได้อย่างถูกต้องตั้งแต่เริ่มต้น


16

ในกรณีของฉันฉันแก้ไขได้โดยทำตามสองขั้นตอนเหล่านี้

1. Go to android studio preferences -> other settings -> kotlin compiler -> set Target JVM version = 1.8 
   if it doesn't work then go to the second option.

2. In your module-level build.gradle file add 
   compileOptions {
        sourceCompatibility = 1.8
        targetCompatibility = 1.8
    }
    tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
        kotlinOptions {
            jvmTarget = "1.8"
        }
    }

เฮ้ขอบคุณสำหรับคำตอบฉันต้องทำขั้นตอนที่ 2 และใช้งานได้ คุณช่วยอธิบายได้ไหมว่าทำไมถึงมีความจำเป็น
hushed_voice

คุณสามารถหารายละเอียดเพิ่มเติมเกี่ยวกับปัญหาที่ปิดนี้ได้ดี [ github.com/mikepenz/Android-Iconics/issues/454]
Vikas Sharma

ลิงก์นั้นตาย
hushed_voice

12

สำหรับฉันเหตุผลคือการกำหนดค่านี้ในระดับการสร้างของฉันอยู่ในบางโมดูลและบางอย่างก็ไม่ได้

android {  
...      
kotlinOptions {
        val options = this as KotlinJvmOptions
        options.jvmTarget = "1.8"
    }
...
android {

1
ขอบคุณนี่เป็นทางออกเดียวที่เหมาะกับฉัน ฉันใช้ไฟล์ kts buiild
Krames

ขอบคุณนี่เป็นวิธีแก้ปัญหาสำหรับฉันด้วย และประกาศมากด้วยวิธีนี้ stackoverflow.com/a/57041765/3763032 kevin ยังกล่าวสิ่งนี้เนื่องจากสมาร์ทแคสต์ในไฟล์ kotlin gradle ไฟล์. kts มีให้บริการโดยตรง
mochadwi

12

สำหรับ Gradle with Kotlin language ( *.gradle.ktsไฟล์) เพิ่มสิ่งนี้:

android {
    [...]
    kotlinOptions {
        this as KotlinJvmOptions
        jvmTarget = "1.8"
    }
}

ทำไมเราต้องโยนไปthis KotlinJvmOptionsไม่ได้thisรับในkotlinOptionsบล็อกอยู่แล้วKotlinJvmOptions? ถึงกระนั้นมันก็ไม่ได้ผลสำหรับฉันถ้าไม่มีนักแสดง
11m0

1
@ 11m0 ฉันคิดว่าเกี่ยวข้องกับปัญหานี้: github.com/gradle/kotlin-dsl-samples/issues/1368
HDW

เมื่อไม่พบ KotlinJvmOptions ให้ลองใช้ชื่อเต็ม "org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions"
HDW

4

ในกรณีส่วนใหญ่นี่ก็เพียงพอแล้ว:

compileKotlin {
    kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
    kotlinOptions.jvmTarget = "1.8"
}

ถ้าคุณได้ประกาศงาน Gradle ที่กำหนดเองเช่นintegrationTestเช่นเพิ่มการกำหนดค่าcompile<YourTaskName>Kotlinเช่นกัน:

compileIntegrationTestKotlin {
    kotlinOptions.jvmTarget = "1.8"
}

สิ่งนี้จะใช้ได้เช่นกันโดยการเพิ่มไฟล์ gradle -> compileOptions {sourceCompatibility = 1.8 targetCompatibility = 1.8} kotlinOptions {jvmTarget = "1.8"}
Sanket Patel

น่าสนใจมีเพียงโซลูชันของคุณเท่านั้นที่ทำงานร่วมกับโมดูลที่ไม่ใช่ Android ของฉัน! ขอบคุณ!
Mohammad Omidvar

4

การตั้งค่าsourceCompatibility = JavaVersion.VERSION_1_8เปิดใช้งาน desugaring แต่ขณะนี้ไม่สามารถยกเลิกการกำหนดคุณสมบัติ Java 8 ทั้งหมดที่คอมไพเลอร์ Kotlin ใช้

ป้อนคำอธิบายรูปภาพที่นี่

แก้ไข - การตั้งค่าkotlinOptions.jvmTarget to JavaVersion.VERSION_1_8ในโมดูลแอป Gradle จะแก้ไขปัญหาได้

ใช้คุณสมบัติภาษา Java 8: https://developer.android.com/studio/write/java8-support

android {
  ...
  // Configure only for each module that uses Java 8
  // language features (either in its source code or
  // through dependencies).
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
  // For Kotlin projects
  kotlinOptions {
    jvmTarget = "1.8"
  }
}

3

คำตอบทั้งหมดที่นี่กำลังใช้การไล่ระดับสี แต่ถ้ามีคนอย่างฉันจบลงที่นี่และต้องการคำตอบสำหรับ maven:

    <build>
        <sourceDirectory>src/main/kotlin</sourceDirectory>
        <testSourceDirectory>src/test/kotlin</testSourceDirectory>

        <plugins>
            <plugin>
                <groupId>org.jetbrains.kotlin</groupId>
                <artifactId>kotlin-maven-plugin</artifactId>
                <version>${kotlin.version}</version>
                <executions>
                    <execution>
                        <id>compile</id>
                        <phase>compile</phase>
                        <goals>
                            <goal>compile</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>test-compile</id>
                        <phase>test-compile</phase>
                        <goals>
                            <goal>test-compile</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <jvmTarget>11</jvmTarget>
                </configuration>
            </plugin>
        </plugins>
    </build>

การเปลี่ยนแปลงจาก jetbrains archetype สำหรับ kotlin-jvm คือการ<configuration></configuration>ระบุ jvmTarget ในกรณีของฉัน 11


3

ไม่มีอะไรทำงานให้ฉันจนกว่าฉันจะอัพเดตการพึ่งพาปลั๊กอิน kotlin
ลองสิ่งนี้:
1. ตรวจสอบ cahce แล้วรีสตาร์ท
2. ซิงค์โครงการ (อย่างน้อยพยายาม)
3. ไปที่ไฟล์ -> โครงสร้างโครงการ -> คำแนะนำ
4. หากมีการอัปเดตเกี่ยวกับ Kotlin ให้อัปเดต
หวังว่ามันจะช่วยใครซักคน


การแก้ไขที่ง่ายที่สุด
u84six

2

หากใช้รหัส Visual Studio ** พร้อมส่วนขยาย Kotlin ให้ไปที่การจัดการปลั๊กอิน Crtl + Shift + x พิมพ์ kotlin แล้วคลิกจัดการ (อุปกรณ์เล็ก ๆ ) >> กำหนดการตั้งค่าส่วนขยาย

บน Kotlin >> คอมไพเลอร์ >> Jvm: Target - พิมพ์เวอร์ชัน java ในสถานการณ์ของฉันเพิ่งพิมพ์ 1.8

จากนั้นรีสตาร์ท :-)

** vscode หรือเพียงแค่ 'code' สำหรับ linux



2

ฉันใช้ Kotlin และ Gradle สำหรับการพัฒนา JVM แบบปกติ (ไม่ใช่ android) และนี่ใช้ได้สำหรับฉันในbuild.gradle:

allprojects {
    tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
        kotlinOptions.jvmTarget = JavaVersion.VERSION_11.toString()
    }
}

1

หากคุณใช้ Eclipse สมมติว่าคุณดาวน์โหลดปลั๊กอิน Kotlin:

คลิกขวาที่โครงการ -> Properties -> Kotlin Compiler -> เปิดใช้งานการตั้งค่าเฉพาะโครงการ -> เวอร์ชั่นเป้าหมาย JVM "1.8"


1

สำหรับ Android Studio เวอร์ชันล่าสุดหากการเปลี่ยนเฉพาะ Kotlin Target VM ไม่ทำงาน

ไฟล์ Structure โครงสร้างโครงการ➞โมดูล ( app): ตั้งค่าทั้ง "ความเข้ากันได้ของแหล่งที่มา" และ "ความเข้ากันได้ของเป้าหมาย" เป็น "1.8 (Java 8)" กด "ตกลง" และซิงค์โครงการกับ Gradle


1

ถ้าคุณอยู่ในโครงการ Android

ใน build.gradle ของแอปของคุณภายใต้ android {}

android{
//other configs...
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = "1.8"
    }
}

1

การใช้ Kotlin Gradle DSL นี่ช่วยแก้ปัญหาให้ฉันได้ ฉันเพิ่มสิ่งนี้ไปยัง build.gradle.kts นี่เป็นคำตอบเพิ่มเติมจากโจเอล

val compileKotlin: KotlinCompile by tasks
compileKotlin.kotlinOptions.jvmTarget = JavaVersion.VERSION_1_8.toString()

1
คุณกรุณาแชร์ให้ตรงกับไฟล์ที่คุณใส่ไว้ได้ไหม? และปลั๊กอิน Android รุ่นใดและคุณกำลังใช้ gradle?
treesAreEverywhere

นี่ไม่ใช่โครงการ Android ฉันกำลังเล่น Gradle 6.4
Briantical

0

คำแนะนำอื่นสำหรับผู้ใช้ Eclipse หลังจากตรวจสอบการตั้งค่าเป้าหมาย jvm สองครั้งโดยผู้ใช้คนอื่นชี้ให้เห็นฉันยังคงมีปัญหาเดียวกันและนั่นเกิดจาก Kotlin Runtime Library ที่ขาดหายไป ตัวอย่างเช่นเมื่อสร้างโครงการที่มี spring initializr จะไม่ถูกเพิ่มโดยอัตโนมัติ สำหรับการเพิ่ม: right click on your project -> Build path -> Add libraries... -> User Libraryและเพียงเพิ่มorg.jetbrains.kotlin.core.KOTLIN_CONTAINER

ให้แน่ใจว่าคุณรีเฟรชโครงการ gradle ของคุณหลังจากนั้น ( right click -> Gradle -> Refresh gradle project)


0

หากคุณกำลังเผชิญข้อความนี้ในโครงการ Spring Boot / Kotlin เพียงตั้งค่าคุณสมบัติ "kotlin.compiler.jvmTarget" เป็น "1.8" ใน pom.xml ของคุณ

    <properties>
        <kotlin.version>1.3.70</kotlin.version>
        <kotlin.compiler.jvmTarget>1.8</kotlin.compiler.jvmTarget>
    </properties>
    ...

0

ในกรณีของฉัน jvmTarget ถูกตั้งค่าไว้ในbuild.gradleไฟล์ดังนี้

tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
    kotlinOptions {
        jvmTarget = "1.8"
    }
}

แต่ปัญหาของฉันยังคงอยู่ที่นั่น ในที่สุดมันจะได้รับการแก้ไขหลังจากเปลี่ยนเวอร์ชั่นเป้าหมาย JVM จาก 1.6 เป็น 1.8 ในการตั้งค่า> การตั้งค่าอื่น ๆ > คอมไพเลอร์ Kotlin> เวอร์ชั่น JVM เป้าหมาย ดูรูปภาพที่แนบมา

ป้อนคำอธิบายรูปภาพที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.