From a355919cdc70c863b61d9b455f614e9d071c6cfa Mon Sep 17 00:00:00 2001 From: wsy182 <2392948297@qq.com> Date: Mon, 1 Jun 2026 23:50:57 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9B=86=E6=88=90=20Timber=20=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E6=A1=86=E6=9E=B6=EF=BC=8C=E9=99=8D=E7=BA=A7=20AGP/Gr?= =?UTF-8?q?adle=20=E9=80=82=E9=85=8D=20JDK=2017=EF=BC=8C=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E6=9E=84=E5=BB=BA=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 PosefitApplication 初始化 Timber DebugTree - WebRtcSenderClient/MainActivity/SimpleSdpObserver 添加 Timber 日志 - AGP 9.2.1 → 8.7.3,Gradle 9.4.1 → 8.11.1 适配 JDK 17 - compileSdk/targetSdk 恢复为 34,minSdk 保持 29 支持 Android 10 - 添加 android.useAndroidX=true 修复构建检查 - 删除 gradle-daemon-jvm.properties (JDK 21 残留配置) - 信令端口默认改为 8765 --- app/build.gradle | 2 + app/src/main/AndroidManifest.xml | 1 + .../java/com/kimgo/posefit/MainActivity.kt | 9 +++- .../com/kimgo/posefit/PosefitApplication.kt | 13 +++++ .../kimgo/posefit/sender/SimpleSdpObserver.kt | 9 +++- .../posefit/sender/WebRtcSenderClient.kt | 48 ++++++++++++++++--- build.gradle | 1 + gradle.properties | 2 + gradle/gradle-daemon-jvm.properties | 12 ----- gradle/libs.versions.toml | 4 +- gradle/wrapper/gradle-wrapper.properties | 5 +- 11 files changed, 81 insertions(+), 25 deletions(-) create mode 100644 app/src/main/java/com/kimgo/posefit/PosefitApplication.kt delete mode 100644 gradle/gradle-daemon-jvm.properties diff --git a/app/build.gradle b/app/build.gradle index 53d8295..47cc505 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -29,6 +29,7 @@ android { } buildFeatures { compose true + buildConfig true } } @@ -47,6 +48,7 @@ dependencies { testImplementation libs.junit androidTestImplementation libs.espresso.core androidTestImplementation libs.ext.junit + implementation libs.timber implementation "io.getstream:stream-webrtc-android:1.3.10" implementation "com.squareup.okhttp3:okhttp:4.12.0" } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c038280..e67bcaf 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -19,6 +19,7 @@ android:required="true" /> ) {} override fun onAddStream(stream: MediaStream) {} override fun onRemoveStream(stream: MediaStream) {} @@ -137,6 +156,8 @@ class WebRtcSenderClient( videoTrack, listOf("posefit_stream") ) + + Timber.d("Camera started: %s, resolution=1280x720@30fps", cameraName) } private fun createOffer() { @@ -160,17 +181,27 @@ class WebRtcSenderClient( } webSocket.send(json.toString()) + Timber.d("Offer sent via signaling") + } + + override fun onSetFailure(error: String) { + Timber.e("setLocalDescription failed: %s", error) } - override fun onSetFailure(error: String) {} override fun onCreateSuccess(desc: SessionDescription) {} - override fun onCreateFailure(error: String) {} + override fun onCreateFailure(error: String) { + Timber.e("createOffer failed: %s", error) + } }, desc) } override fun onSetSuccess() {} - override fun onCreateFailure(error: String) {} - override fun onSetFailure(error: String) {} + override fun onCreateFailure(error: String) { + Timber.e("createOffer failed: %s", error) + } + override fun onSetFailure(error: String) { + Timber.e("setLocalDescription failed: %s", error) + } }, constraints) } @@ -189,6 +220,7 @@ class WebRtcSenderClient( SimpleSdpObserver(), sdp ) + Timber.d("Answer received from server") } "candidate" -> { @@ -204,6 +236,8 @@ class WebRtcSenderClient( } fun release() { + Timber.i("WebRTC releasing") + try { videoCapturer?.stopCapture() } catch (_: Exception) { @@ -219,5 +253,7 @@ class WebRtcSenderClient( eglBase.release() webSocket.close(1000, "close") okHttpClient.dispatcher.executorService.shutdown() + + Timber.d("WebRTC released") } } \ No newline at end of file diff --git a/build.gradle b/build.gradle index 3756278..f74b04b 100644 --- a/build.gradle +++ b/build.gradle @@ -1,4 +1,5 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. plugins { alias(libs.plugins.android.application) apply false + alias(libs.plugins.jetbrains.kotlin.android) apply false } \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index e412167..ec6334a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,6 +7,8 @@ # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +org.gradle.java.home=C\:\\Program Files\\Java\\jdk-17 +android.useAndroidX=true # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. For more details, visit # https://developer.android.com/r/tools/gradle-multi-project-decoupled-projects diff --git a/gradle/gradle-daemon-jvm.properties b/gradle/gradle-daemon-jvm.properties deleted file mode 100644 index 6c1139e..0000000 --- a/gradle/gradle-daemon-jvm.properties +++ /dev/null @@ -1,12 +0,0 @@ -#This file is generated by updateDaemonJvm -toolchainUrl.FREE_BSD.AARCH64=https\://api.foojay.io/disco/v3.0/ids/ec7520a1e057cd116f9544c42142a16b/redirect -toolchainUrl.FREE_BSD.X86_64=https\://api.foojay.io/disco/v3.0/ids/4c4f879899012ff0a8b2e2117df03b0e/redirect -toolchainUrl.LINUX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/ec7520a1e057cd116f9544c42142a16b/redirect -toolchainUrl.LINUX.X86_64=https\://api.foojay.io/disco/v3.0/ids/4c4f879899012ff0a8b2e2117df03b0e/redirect -toolchainUrl.MAC_OS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/73bcfb608d1fde9fb62e462f834a3299/redirect -toolchainUrl.MAC_OS.X86_64=https\://api.foojay.io/disco/v3.0/ids/846ee0d876d26a26f37aa1ce8de73224/redirect -toolchainUrl.UNIX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/ec7520a1e057cd116f9544c42142a16b/redirect -toolchainUrl.UNIX.X86_64=https\://api.foojay.io/disco/v3.0/ids/4c4f879899012ff0a8b2e2117df03b0e/redirect -toolchainUrl.WINDOWS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/9482ddec596298c84656d31d16652665/redirect -toolchainUrl.WINDOWS.X86_64=https\://api.foojay.io/disco/v3.0/ids/39701d92e1756bb2f141eb67cd4c660e/redirect -toolchainVersion=21 diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index fc9b9cf..f8ab0e6 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -agp = "9.2.1" +agp = "8.7.3" kotlin = "2.0.0" composeBom = "2024.02.00" composeCompiler = "1.5.8" @@ -11,8 +11,10 @@ junitVersion = "1.1.5" espressoCore = "3.5.1" appcompat = "1.6.1" material = "1.10.0" +timber = "5.0.1" [libraries] +timber = { group = "com.jakewharton.timber", name = "timber", version.ref = "timber" } junit = { group = "junit", name = "junit", version.ref = "junit" } ext-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" } espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 48684fa..41d2d42 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,9 +1,8 @@ #Mon Jun 01 17:35:27 CST 2026 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionSha256Sum=2ab2958f2a1e51120c326cad6f385153bb11ee93b3c216c5fccebfdfbb7ec6cb -distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip networkTimeout=10000 -validateDistributionUrl=true +validateDistributionUrl=false zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists