应用程序不规则崩溃并抛出JNI错误:输入无效修改的UTF-8



我的Android应用程序不规则崩溃并引发JNI错误。错误信息为:

2021-12-20 15:31:26.895 2726-2726/com.csquared.minetune.app A/ed.minetune.ap: java_vm_ext.cc:578] JNI DETECTED ERROR IN APPLICATION: input is not valid Modified UTF-8: illegal start byte 0xb0
java_vm_ext.cc:578]     string: '���n'
java_vm_ext.cc:578]     input: '<0xb0> 0xce 0x1e 0xfb 0x6e'
java_vm_ext.cc:578]     in call to NewStringUTF
java_vm_ext.cc:578]     from android.util.SparseArray android.content.res.AssetManager.nativeGetAssignedPackageIdentifiers(long, boolean, boolean)

当我启动一个新片段时,总是会出现这个错误。它似乎是从安卓SDK内置方法中抛出的。这真的很奇怪,因为在我发布这个问题的时候,每次我指向一个新的片段时,应用程序都会崩溃,但几分钟后,崩溃消失了,似乎没有什么问题。真的需要帮助。

关于AssetManager.nativeGetAssignedPackageIdentifiers()的完整错误信息是:

2021-12-20 16:21:39.297 20354-20354/com.csquared.minetune.app A/ed.minetune.ap: runtime.cc:677]   native: #203 pc 00000000002fed48  /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.7983234147973590803)+268)
runtime.cc:677]   native: #204 pc 0000000000629a84  /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+796)
runtime.cc:677]   native: #205 pc 000000000013dff8  /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88)
runtime.cc:677]   native: #206 pc 0000000000afdf0c  /system/framework/arm64/boot-framework.oat (com.android.internal.os.ZygoteInit.main+2444)
runtime.cc:677]   native: #207 pc 00000000001347e8  /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+568)
runtime.cc:677]   native: #208 pc 0000000000198eb0  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+232)
runtime.cc:677]   native: #209 pc 0000000000532198  /apex/com.android.art/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104)
runtime.cc:677]   native: #210 pc 0000000000531d90  /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeWithVarArgs<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, std::__va_list)+428)
runtime.cc:677]   native: #211 pc 0000000000532cf8  /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeWithVarArgs<_jmethodID*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+92)
runtime.cc:677]   native: #212 pc 00000000004249f4  /apex/com.android.art/lib64/libart.so (art::JNI<true>::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+656)
runtime.cc:677]   native: #213 pc 000000000009d434  /system/lib64/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+124)
runtime.cc:677]   native: #214 pc 00000000000a5a8c  /system/lib64/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+848)
runtime.cc:677]   native: #215 pc 000000000000358c  /system/bin/app_process64 (main+1348)
runtime.cc:677]   native: #216 pc 000000000004a1e4  /apex/com.android.runtime/lib64/bionic/libc.so (__libc_init+108)
runtime.cc:677]   at android.content.res.AssetManager.nativeGetAssignedPackageIdentifiers(Native method)
runtime.cc:677]   at android.content.res.AssetManager.getAssignedPackageIdentifiers(AssetManager.java:1496)
runtime.cc:677]   - locked <0x0e52873d> (a android.content.res.AssetManager)
runtime.cc:677]   at android.content.res.AssetManager.getAssignedPackageIdentifiers(AssetManager.java:1486)
runtime.cc:677]   at android.graphics.Typeface$Builder.createAssetUid(Typeface.java:637)
runtime.cc:677]   at android.graphics.Typeface$Builder.access$000(Typeface.java:452)
runtime.cc:677]   at android.graphics.Typeface.findFromCache(Typeface.java:407)
runtime.cc:677]   - locked <0x04865b32> (a java.lang.Object)
runtime.cc:677]   at android.content.res.ResourcesImpl.loadFont(ResourcesImpl.java:1192)
runtime.cc:677]   at android.content.res.Resources.getFont(Resources.java:545)
runtime.cc:677]   at android.content.res.TypedArray.getFont(TypedArray.java:1036)
runtime.cc:677]   at android.widget.TextView.readTextAppearance(TextView.java:4357)
runtime.cc:677]   at android.widget.TextView.<init>(TextView.java:1360)
runtime.cc:677]   at android.widget.TextView.<init>(TextView.java:1241)
runtime.cc:677]   at androidx.appcompat.widget.AppCompatTextView.<init>(AppCompatTextView.java:102)
runtime.cc:677]   at com.google.android.material.textview.MaterialTextView.<init>(MaterialTextView.java:93)
runtime.cc:677]   at com.google.android.material.textview.MaterialTextView.<init>(MaterialTextView.java:88)
2021-12-20 16:21:39.297 20354-20354/com.csquared.minetune.app A/ed.minetune.ap: runtime.cc:677]   at com.google.android.material.textview.MaterialTextView.<init>(MaterialTextView.java:83)
runtime.cc:677]   at com.google.android.material.theme.MaterialComponentsViewInflater.createTextView(MaterialComponentsViewInflater.java:61)
runtime.cc:677]   at androidx.appcompat.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:115)
runtime.cc:677]   at androidx.appcompat.app.AppCompatDelegateImpl.createView(AppCompatDelegateImpl.java:1563)
runtime.cc:677]   at androidx.appcompat.app.AppCompatDelegateImpl.onCreateView(AppCompatDelegateImpl.java:1614)
runtime.cc:677]   at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:240)
runtime.cc:677]   at android.view.LayoutInflater.tryCreateView(LayoutInflater.java:1059)
runtime.cc:677]   at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:995)
runtime.cc:677]   at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:959)
runtime.cc:677]   at android.view.LayoutInflater.rInflate(LayoutInflater.java:1121)
runtime.cc:677]   at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082)
runtime.cc:677]   at android.view.LayoutInflater.rInflate(LayoutInflater.java:1124)
runtime.cc:677]   at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082)
runtime.cc:677]   at android.view.LayoutInflater.rInflate(LayoutInflater.java:1124)
runtime.cc:677]   at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082)
runtime.cc:677]   at android.view.LayoutInflater.inflate(LayoutInflater.java:680)
runtime.cc:677]   - locked <0x07aa4083> (a java.lang.Object[])
runtime.cc:677]   at android.view.LayoutInflater.inflate(LayoutInflater.java:532)
runtime.cc:677]   at com.csquared.minetune.app.databinding.FragmentSearchBinding.inflate(FragmentSearchBinding.java:45)
runtime.cc:677]   at com.csquared.minetune.app.databinding.FragmentSearchBinding.inflate(FragmentSearchBinding.java:39)
runtime.cc:677]   at com.csquared.minetune.app.ui.main.search.SearchFragment.onCreateView(SearchFragment.kt:22)
runtime.cc:677]   at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2963)
runtime.cc:677]   at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:518)
runtime.cc:677]   at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:282)
runtime.cc:677]   at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2189)
runtime.cc:677]   at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2106)
runtime.cc:677]   at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:2002)
runtime.cc:677]   at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:524)
runtime.cc:677]   at android.os.Handler.handleCallback(Handler.java:938)
runtime.cc:677]   at android.os.Handler.dispatchMessage(Handler.java:99)
runtime.cc:677]   at android.os.Looper.loop(Looper.java:246)
runtime.cc:677]   at android.app.ActivityThread.main(ActivityThread.java:8633)
runtime.cc:677]   at java.lang.reflect.Method.invoke(Native method)
runtime.cc:677]   at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
runtime.cc:677]   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)
runtime.cc:677] 
2021-12-20 16:21:39.297 20354-20354/com.csquared.minetune.app A/ed.minetune.ap: runtime.cc:685] JNI DETECTED ERROR IN APPLICATION: input is not valid Modified UTF-8: illegal continuation byte 0x32
runtime.cc:685]     string: '�2!�n'
runtime.cc:685]     input: '0xd0 <0x32> 0x21 0xdb 0x6e'
runtime.cc:685]     in call to NewStringUTF
runtime.cc:685]     from android.util.SparseArray android.content.res.AssetManager.nativeGetAssignedPackageIdentifiers(long, boolean, boolean)
2021-12-20 16:21:39.297 20354-20354/com.csquared.minetune.app A/libc: Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 20354 (ed.minetune.app), pid 20354 (ed.minetune.app)

我也遇到了同样的错误。我最终解决了将res文件夹(strings.xml(中的"ı"字符改为"I"的问题。

<resources>
<string name="app_name">En Yakın Nobetci Eczane</string>
</resources>

<resources>
<string name="app_name">En Yakin Nobetci Eczane</string>
</resources>

最新更新