Когда я пытаюсь интернационализировать приложение с помощью xml / строк, я использую метод getString, чтобы установить строку в переменную во фрагменте. Во время теста я не отправлял cra sh, но после онлайн-обновления он начал cra sh.
в субфрагменте нужно переопределить переменную:
override val titleText: String get() = getString(R.string.string_goods_input_order_select_scan_waybill_num)
Я нахожу приложение для использования метода getstring.
/**
* Return a localized string from the application's package's
* default string table.
*
* @param resId Resource id for the string
*/
@NonNull
public final String getString(@StringRes int resId) {
return getResources().getString(resId);
}
и titleText вызывается в onViewCreated в родительском классе. Когда я тестировал, сбоев не было но пользователи обновляются до новой версии , они не могут открыть приложение .
это cra sh log:
java.lang.IllegalStateException: Fragment b{d85a8fe} not attached to a context.
at android.support.v4.app.Fragment.requireContext(Fragment.java:31)
at android.support.v4.app.Fragment.getResources(Fragment.java:0)
at android.support.v4.app.Fragment.getString(Fragment.java:0)
at com.sfic.huaweiministorebarpistol.print.PrintSkuFragment.<init>(PrintSkuFragment.java:6)
at com.sfic.huaweiministorebarpistol.print.PrintSkuFragment$Companion.a(PrintSkuFragment.java:2)
at com.sfic.huaweiministorebarpistol.usercenter.UserCenterFragment$onViewCreated$8.onClick(UserCenterFragment.java:70)
at android.view.View.performClick(View.java:6308)
at android.view.View$PerformClick.run(View.java:24949)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6523)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:857)
Я пытаюсь заменить titleText: String методом в родительском классе:
abstract fun titleText(): String
и в подклассе
override fun titleText(): String {
return getString(R.string.string_location_num)
}
В настоящее время я предполагаю, что это потому, что контекст getString пуст, но я не воспроизводил cra sh