diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 87d762e..0612f11 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -17,7 +17,7 @@ android { testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" ndk { - abiFilters.addAll(listOf("armeabi-v7a", "arm64-v8a")) + abiFilters.addAll(listOf("armeabi-v7a", "arm64-v8a", "x86", "x86_64")) } } diff --git a/app/src/main/java/com/example/kingway/ptt/MyApplication.java b/app/src/main/java/com/example/kingway/ptt/MyApplication.java index 935b839..6ab8928 100644 --- a/app/src/main/java/com/example/kingway/ptt/MyApplication.java +++ b/app/src/main/java/com/example/kingway/ptt/MyApplication.java @@ -29,17 +29,21 @@ public class MyApplication { public static void initPTT() { if (pNative != null) return; - pNative = new pttNative(); + try { + pNative = new pttNative(); - pNative.pttNativeSetPackageName(pageName); - pNative.pttNativeSetAtCallback(); - pNative.pttNativeSetPlayCallback(); - pNative.pttNativeSetPalyStartCallback(); - pNative.pttNativeSetPlayStopCallback(); - pNative.pttNativeSetRecordStartCallback(); - pNative.pttNativeSetRecordStopCallback(); - pNative.pttNativeSetTTSCallback(); + pNative.pttNativeSetPackageName(pageName); + pNative.pttNativeSetAtCallback(); + pNative.pttNativeSetPlayCallback(); + pNative.pttNativeSetPalyStartCallback(); + pNative.pttNativeSetPlayStopCallback(); + pNative.pttNativeSetRecordStartCallback(); + pNative.pttNativeSetRecordStopCallback(); + pNative.pttNativeSetTTSCallback(); - pNative.pttNativePocTaskStart(); + pNative.pttNativePocTaskStart(); + } catch (Throwable e) { + Log.e("PTT_INIT", "Failed to init PTT: " + e.getMessage()); + } } } diff --git a/app/src/main/java/com/example/kingway/ptt/pttNative.java b/app/src/main/java/com/example/kingway/ptt/pttNative.java index 9b311f6..2ed693e 100644 --- a/app/src/main/java/com/example/kingway/ptt/pttNative.java +++ b/app/src/main/java/com/example/kingway/ptt/pttNative.java @@ -13,7 +13,11 @@ import java.util.List; public class pttNative { private static String TAG = "pttNative"; static { - System.loadLibrary("ptt"); + try { + System.loadLibrary("ptt"); + } catch (Throwable e) { + Log.e(TAG, "Failed to load ptt library: " + e.getMessage()); + } } public static char Char2ASCII(char c) diff --git a/app/src/main/java/com/stand/standapp/MyApplication.kt b/app/src/main/java/com/stand/standapp/MyApplication.kt index 75901c8..d841617 100644 --- a/app/src/main/java/com/stand/standapp/MyApplication.kt +++ b/app/src/main/java/com/stand/standapp/MyApplication.kt @@ -7,14 +7,27 @@ import timber.log.Timber class MyApplication : Application() { + companion object { + private var instance: MyApplication? = null + fun getAppInstance(): MyApplication = instance!! + } + override fun onCreate() { super.onCreate() + instance = this + // Initialize Timber and File Logging LogManager.init(this) - // Initialize PTT Module - PTTMyApplication.init(this) + try { + // Initialize PTT Module + PTTMyApplication.init(this) + Timber.tag("MyApplication").i("PTT Module init sequence finished") + } catch (e: Throwable) { + // Catch UnsatisfiedLinkError or other PTT init failures + Timber.tag("MyApplication").e(e, "PTT Module failed to start (Expected on non-ARM simulators)") + } - Timber.tag("MyApplication").i("Application onCreate - Logging system and PTT started") + Timber.tag("MyApplication").i("Application onCreate - Logging system ready") } }