我已经向Google Play内部测试提交了一个React Native应用程序,这些测试显示了一些稳定性错误,相同的aab文件安装在我的设备上并且工作得很好,调试模式也工作正常,没有错误,但是在Google Play内部测试中它显示错误:
java.lang.NoSuchFieldError:没有“Lcom/facebook/jni/HybridData;”场地 “Lcom/shopify/reactnative/skia/SkiaDomView”类中的“mHybridData”;或者 它的超类
还有另外一个说:
异常 java.lang.RuntimeException:无法暂停活动 {com.imagewatermarks/com.imagewatermarks.MainActivity}: com.facebook.react.uimanager.IllegalViewOperationException:尝试 添加未知视图标签:199 详细信息:视图标签:239 视图类型:class com.facebook.react.views.view.ReactViewGroup 子级(1): [ 193, ], viewsToAdd(1): [ [1,199], ], 在 android.app.ActivityThread.performPauseActivityIfNeeded (ActivityThread.java:4896)位于 android.app.ActivityThread.performPauseActivity (ActivityThread.java:4845)位于 android.app.ActivityThread.handlePauseActivity (ActivityThread.java:4796)位于 android.app.servertransaction.PauseActivityItem.execute (PauseActivityItem.java:46) 在 android.app.servertransaction.TransactionExecutor.executeLifecycleState (TransactionExecutor.java:176)位于 android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:97)位于 android.app.ActivityThread$H.handleMessage (ActivityThread.java:2144) 在 android.os.Handler.dispatchMessage (Handler.java:106) 处 androidx.test.espresso.base.Interrogator.loopAndInterrogate (Interrogator.java:10) 在 androidx.test.espresso.base.UiControllerImpl.loopUntil (UiControllerImpl.java:7)位于 androidx.test.espresso.base.UiControllerImpl.loopUntil (UiControllerImpl.java:1)位于 androidx.test.espresso.base.UiControllerImpl.loopMainThreadForAtLeast (UiControllerImpl.java:7)位于 androidx.test.espresso.action.Tap$1.sendTap (Tap.java:4) 在 androidx.test.espresso.action.GeneralClickAction.perform (GeneralClickAction.java:4)位于 androidx.test.espresso.ViewInteraction$SingleExecutionViewAction.perform (ViewInteraction.java:2)位于 androidx.test.espresso.ViewInteraction.doPerform (ViewInteraction.java:23)位于 androidx.test.espresso.ViewInteraction.-$$Nest$mdo执行于 androidx.test.espresso.ViewInteraction$1.call (ViewInteraction.java:6) 在 androidx.test.espresso.ViewInteraction$1.call (ViewInteraction.java:1) 在 java.util.concurrent.FutureTask.run (FutureTask.java:266) 在 android.os.Handler.handleCallback (Handler.java:938) 在 android.os.Handler.dispatchMessage (Handler.java:99) 在 android.os.Looper.loop (Looper.java:240) 在 android.app.ActivityThread.main (ActivityThread.java:8000) 位于 java.lang.reflect.Method.invoke at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:603) 位于 com.android.internal.os.ZygoteInit.main (ZygoteInit.java:947)引起的 com.facebook.react.uimanager.IllegalViewOperationException:尝试 添加未知视图标签:199 详细信息:视图标签:239 视图类型:class com.facebook.react.views.view.ReactViewGroup 子级(1): [ 193, ], 视图添加(1):[[1,199],],
我在某处读到与 proguard 文件相关的错误,因此他们建议向我的文件添加一些代码行,所以这是我的 proguard-rules.pro 文件:
-keep class com.facebook.react.cxxbridge.ModuleRegistryHolder { *; }
-keep class com.facebook.react.cxxbridge.CatalystInstanceImpl { *; }
-keep class com.facebook.react.cxxbridge.JavaScriptExecutor { *; }
-keep class com.facebook.react.bridge.queue.NativeRunnable { *; }
-keep class com.facebook.react.bridge.ExecutorToken { *; }
-keep class com.facebook.react.bridge.ReadableType { *; }
-keep class com.facebook.react.** { *; }
-keepclassmembers class com.facebook.react.** { *; }
这是我的 /android/app/build.gradle 中的代码: def enableProguardInReleaseBuilds = true ....
buildTypes {
debug {
signingConfig signingConfigs.release
}
release {
signingConfig signingConfigs.release
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
shrinkResources true
}
}
}
以及我的 android/build/build.gradle 文件:
buildscript {
ext {
buildToolsVersion = "30.0.3"
minSdkVersion = 30
compileSdkVersion = 33
targetSdkVersion = 33
// We use NDK 23 which has both M1 support and is the side-by-side NDK version from AGP.
ndkVersion = "23.1.7779620"
}
repositories {
google()
mavenCentral()
}
dependencies {
classpath("com.android.tools.build:gradle")
classpath("com.facebook.react:react-native-gradle-plugin")
}
}
生成新的 aab 文件并提交后,这些更改没有产生任何效果,但在 google play 内部测试中仍然出现相同的错误,请您看看是否可以提供帮助。谢谢你。
对于任何面临类似问题的人,我已经解决了,通过将引发错误的类添加到我的 prodguard 文件中,它是:
-保留类 com.shopify.reactnative.skia.SkiaDomView {*;}
并且成功了。