React Native - Memperbaiki React Native Bluetooth ESCPOS Printer Setelah Upgrade ke Android 15

Kemarin ada permintaan dari Google Play Console untuk update APK menjadi minimal ke Android 15 kalau mau aplikasi kita bisa tetap rilis di Play Store. Tentunya hal ini membuat project gua yang sebelumnya ketinggalan jaman banget, perlu di update cukup banyak karena gua masih pakai React Native 0.63. Setelah dicari-cari, akhirnya gua upgrade jadi menggunakan React Native 0.78. Hal ini tentunya membuat salah satu package yang gua pakai jadi error, yaitu react-native-bluetooth-escpos-printer. Kali ini gua mau bahas cara gua buat benerin package itu.

 

Untuk membuat Android 15, berikut ini environment yang gua pakai:

  • React 19.0.0
  • React Native 0.78.3
  • Gradle 8.12
  • AGP 8.7.2 

 

Berikut ini langkah-langkahnya: 

Pertama, gua ganti installan packagenya jadi diambil langsung dari repo, dengan perintah berikut:

npm install github:januslo/react-native-bluetooth-escpos-printer


Kedua, nah ini yang PR-nya ya. Gua selanjutnya update langsung ke kode node_modulesnya si package ini. Jadi hati-hati ya, misalnya kalian ngapus node_modulesnya, jangan lupa perlu diubah manual lagi codingnya. 

Ganti seluruh kode di node_modules/react-native-bluetooth-escpos-printer/android/build.gradle jadi

buildscript {
    repositories {
        google()
        mavenCentral()
        maven { url "https://repo.spring.io/plugins-release/" }
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:8.4.0'
    }
}

apply plugin: 'com.android.library'

android {
    namespace "cn.jystudio.bluetooth"
    compileSdkVersion 35

    defaultConfig {
        minSdkVersion 24
        targetSdkVersion 35
        versionCode 1
        versionName "1.0"
    }

    lint {
        abortOnError false
    }

    sourceSets {
        main {
            aidl.srcDirs = ['src/main/java']
        }
    }
}

repositories {
    google()
    mavenCentral()
    maven { url "https://repo.spring.io/plugins-release/" }
    maven {
        url "$rootDir/../node_modules/react-native/android"
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.facebook.react:react-native:+'
    implementation 'androidx.core:core:1.12.0'
    implementation "com.google.zxing:core:3.3.0"
}


Ketiga, update node_modules/react-native-bluetooth-escpos-printer/android/src/main/AndroidManifest.xml bagian di bawah ini

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="cn.jystudio.bluetooth">
    <application />
</manifest>

Jadi

<manifest xmlns:android="http://schemas.android.com/apk/res/android">
    <application />
</manifest>


Keempat, kemudian update node_modules/react-native-bluetooth-escpos-printer/android/src/main/java/cn/jystudio/bluetooth/RNBluetoothManagerModule.java, bagian ini

import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;

diubah jadi

import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;


Jika sudah, jangan lupa untuk jalankan ./gradlew clean.

 

Langkah-langkah di atas sudah gua coba dan berhasil untuk di environment yang gua pakai. Semoga berhasil juga di project kalian. Selamat mencoba dan semoga berhasil.

 

Salam Share,

 

Funtastic Share  

Komentar