Category: Programming

It’s about application programming language.

Android : Caused by: java.lang.ClassNotFoundException: com.android.tools.lint.client.api.Vendor

ใช้ Android Studio สร้าง APK file แล้วเกิด Error messages ประมาณ “Caused by: java.lang.ClassNotFoundException: com.android.tools.lint.client.api.Vendor” โดยมี Error ฉบับเต็มประมาณนี้ Could not load custom lint check jar file /Users/tonyrich/.gradle/caches/transforms-3/c200ac22d419ea2f987b972fa499a113/transformed/jetified-startup-runtime-1.1.1/jars/lint.jarjava.lang.NoClassDefFoundError: com/android/tools/lint/client/api/Vendorat androidx.startup.lint.StartupRuntimeIssueRegistry.(StartupRuntimeIssueRegistry.kt:37)at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)at java.base/java.lang.Class.newInstance(Class.java:584)at...

Android : INSTALL_PARSE_FAILED_MANIFEST_MALFORMED when update targetSdkVersion to 31 or more (android 12)

ปัจจุบันตอนนี้ Android 12 (API version 31 and above) ออกมาใช้งานจริงแล้ว เมื่อเราทำการอัพเดท Android App โดยการกำหนด “targetSdkVersion” = 31 และปรับค่า compileSdkVersion = 31 แล้วทดลองรันโปรแกรม ปรากฎว่าเกิด error message ดังนี้ The application could not be installed: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED Installation failed...

PHP: file_get_contents() failed with SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

ต่อเนื่องจากโพสก่อนหน้าเกี่ยวกับ Error file_get_contents() ที่มีการดึงข้อมูลจากเว็บไซต์ที่ใช้โปรโตคอล “HTTPS” ปัญหานี้เป็นอีกกรณีที่อาจพบเจอได้ ในโพสนี้ขอสรุปวิธีการแก้ไขเลยแล้วกันครับ สำหรับข้อความ Error ที่เจอดังข้างล่าง Warning: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed การแก้ไขให้เราเพิ่มโค้ดก่อนเรียกใช้ file_get_contents() ดังนี้ จากตัวอย่างเราสร้าง array เพื่อเก็บค่า ssl , verify_peer,...

PHP: file_get_contents() failed with SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version

วันนี้ผมมาแชร์ error ที่เกิดจากการเรียกใช้ function file_get_contents() บน php ตัวฟังก์ชันนี้ปกติเราใช้ในการดึงข้อมูลขจากเว็บไซต์มาเก็บในตัวแปรเป็น String เช่น มีเว็บไซต์ให้บริการข้อมูลอัพเดทค่าเงิน โดยเรียกผ่าน api url ที่เขากำหนด ตัวอย่าง api url “https://blockchain.info/ticker” ให้บริการข้อมูลราคาค่าเงินสกุลต่างๆ โดยส่งข้อมูลออกมาดังตัวอย่าง { “AUD” : {“15m” : 46766.08, “last” : 46766.08, “buy” : 46766.08, “sell”...

Android : A/libc: fdsan: attempted to close file descriptor 86, expected to be unowned

หลังจากกำหนด targetSdkVersion 30 ปรากฎว่าแอปปลิเคชันเปิดแล้วปิดตัวทันที ลองไปตรวจสอบใน Logcat พบว่ามีเพียงข้อความ error A/libc: fdsan: attempted to close file descriptor 86, expected to be unowned แต่พอเปลี่ยน targetSdkVersion 29 กลับสามารถทำงานได้ปกติ เลยสืบค้นจนพบว่า Error ที่เกิดขึ้น นั่นเกี่ยวกับการใช้ <pl.droidsonroids.gif.GifTextView android:layout_width=”match_parent” android:layout_height=”match_parent” android:background=”@drawable/image” /> พบว่าถ้ารูปภาพที่โหลดไม่ใช่...

Android : How to detect App foreground/background

วันนี้เรามีอีกวิธีในการตรวจสอบว่าแอปฯของเราอยู่ในสถานะทำงานอยู่ (foreground) หรือถูกปิดหรือย่อให้อยู่เบื้องหลัง (Background) โดยวิธีนี้เราจะเรียกใช้ Lifecycle Observer ที่มากับ androidx (androidx.lifecycle.OnLifecycleEvent) ตรวจจับการทำงานของ Event ของแอปฯ การเรียกใช้เราประกาศครั้งเดียวตอนเปิดแอปฯ แล้วตัว lifecycle จะคอยจับ event ให้เรา ดังนี้ public class MainApp extends AppCompatActivity implements LifecycleObserver { … @Override protected void onCreate(Bundle savedInstanceState)...