Browse Source

fix: disable capacitor plugin & support arm32

ryanemax 5 days ago
parent
commit
f45454da2a

+ 2 - 1
6.2.1/capacitor/build.gradle

@@ -98,7 +98,8 @@ dependencies {
     implementation "org.apache.cordova:framework:$cordovaAndroidVersion"
     testImplementation 'org.json:json:20231013'
     testImplementation 'org.mockito:mockito-inline:5.2.0'
-    api "org.mozilla.geckoview:geckoview-arm64-v8a:123.0.20240213221259"
+    // api "org.mozilla.geckoview:geckoview-arm64-v8a:123.0.20240213221259"
+    api "org.mozilla.geckoview:geckoview-armeabi-v7a:123.0.20240213221259"
     implementation 'org.nanohttpd:nanohttpd-webserver:2.3.1'
 }
 

+ 15 - 12
6.2.1/capacitor/src/main/java/com/getcapacitor/JSInjector.java

@@ -46,19 +46,22 @@ class JSInjector {
      */
     public String getScriptString() {
         return (
-            globalJS +
+            "try{"+globalJS +"}catch(err){console.log('globalJS',err)}"+
             "\n\n" +
-            localUrlJS +
-            "\n\n" +
-            bridgeJS +
-            "\n\n" +
-            pluginJS +
-            "\n\n" +
-            cordovaJS +
-            "\n\n" +
-            cordovaPluginsFileJS +
-            "\n\n" +
-            cordovaPluginsJS
+            "try{"+localUrlJS +"}catch(err){console.log('localUrl',err)}"+
+            ""
+            // 以下嵌入代码,让js识别为android环境,但是后续.eval执行无效导致报错
+            // 需要修复WebExtensionPortProxy.eval时同时开启
+            // "\n\n" +
+            // "try{"+bridgeJS +"}catch(err){console.log('bridge',err)}"+
+            // "\n\n" +
+            // "try{"+pluginJS +"}catch(err){console.log('plugin',err)}"+
+            // "\n\n" +
+            // "try{"+cordovaJS +"}catch(err){console.log('cordova',err)}"+
+            // "\n\n" +
+            // "try{"+cordovaPluginsFileJS +"}catch(err){console.log('cordovaPluginsFile',err)}"+
+            // "\n\n" +
+            // "try{"+cordovaPluginsJS +"}catch(err){console.log('cordovaPluginsFile',err)}"
         );
     }
 

+ 55 - 0
README.md

@@ -9,7 +9,62 @@
         - src/main/java/com/getcapacitor/WebExtensionPortProxy.java
         - src/main/java/com/getcapacitor/MessageHandler.java
 
+## 开发调试
+``` bash
+# 从编译开始,直接修改node_modules/@capacitor/android代码 通过gradlew完成编译测试
+
+# 测试打包
+./gradlew assembleDebug
+
+# 携带证书打包
+./gradlew assembleRelease
+zipalign -v 4 app/build/outputs/apk/release/app-release-unsigned.apk app/build/outputs/apk/release/com.fmode.stv.caipu-zip.apk
+apksigner sign --ks ../com.fmode.stv.caipu.keystore --ks-pass pass:caipu666 --ks-key-alias caipu --in app/build/outputs/apk/release/com.fmode.stv.caipu-zip.apk --out app/build/outputs/apk/release/com.fmode.stv.caipu-release.apk
+```
+
+## 兼容测试
+- 下载geckoview浏览器测试
+    - https://github.com/threethan/LightningBrowser/releases
+
+
+## 依赖引用
+- 注意!请进入maven2仓库查询版本号,填写存在版本
+``` 
+    // https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-arm64-v8a/
+    api "org.mozilla.geckoview:geckoview-arm64-v8a:123.0.20240213221259"
+    // https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-armeabi-v7a/
+    api "org.mozilla.geckoview:geckoview-armeabi-v7a:123.0.20240304104836"
+```
+
 # 变更记录
+## TODOLIST ISSUE
+### ISSUE 1 
+- 6.2.1/capacitor/src/main/java/com/getcapacitor/JSInjector.java
+    - 暂时屏蔽了capacitor js插入
+    - 此处执行js正常,但是由于后续.eval错误导致程序报错,不停重启
+    - getScriptString()函数
+         - 注释的嵌入代码部分,让js识别为android环境,但是后续.eval执行无效导致报错
+         - 需要修复WebExtensionPortProxy.eval时同时开启
+
+### ISSUE 2
+- 安卓TV,安装apk,启动过了splash直接停止,无法运行
+    - 查看日志:无任何日志
+    - 已经测试:
+        - 是否程序错误安卓不能运行?否,可以运行
+            - 安卓手机安装正常运行
+        - 是否不兼容geckoview?否,是支持的
+            - 安卓电视,安装LightningBrowser正常加载geckoview访问angular网页
+        - 是否由于ISSUE 1报错导致?否,根本没有MainActivity.java
+            - 日志中空消息,根本没有启动apk
+        - 是否是Debug版本导致?否,正式打包签名Release,仍然不能启动
+        - 是否是第三方库架构不是arm64?确实不是arm64,对应的arm32位库
+            - 测试:adb -s 192.168.2.8:5555 shell getprop ro.product.cpu.abi 
+            - 结果:armeabi-v7a,不是arm64-v8a
+    - 原因分析:暂无
+    - 解决方案:直接用32位arm库
+        - 解决armeabi-v7a库问题
+            - 直接用armeabi-v7a库,因为64位兼容32的库
+
 ## Upgrade to 6.2.1
 - 将web-media项目,覆盖官方5.7.0,查看变化。
 - 在6.2.1文件中逐个修改差异文件