Нарушение StrictMode при использовании номера телефона в TextView
Существует нарушение StrictModeDiskRead при создании макета, содержащего TextView с номером телефона, с использованием параметра android:autoLink="phone".
Это использует com.android.support:appcompat-v7:22.2.0
Удаление параметра autoLink приводит к тому, что нарушение не происходит.
Есть ли способ это исправить?
Трассировки стека:
D / StrictMode violation нарушение политики StrictMode; ~ длительность =108 мс: android.os.StrictMode$StrictModeDiskReadViolation: policy=31 нарушение =2 на android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1135) в libcore.io.BlockGuardOs.open(BlockGuardOs.s. 106) в libcore.io.IoBridge.open(IoBridge.java:393) в java.io.RandomAccessFile.(RandomAccessFile.java:118) в java.io.RandomAccessFile.(RandomAccessFile.java:150) в java.util.zip.ZipFile.(ZipFile.java:149) в java.util.jar.JarFile.(JarFile.java:187) в libcore.net.url.JarURLConnectionImpl.openJarFile(JarURLConnectionImpl.java:136) в libcore.net. " URL.openStream(URL.java:470) в java.lang.ClassLoader.getResourceAsStream(ClassLoader.java:432) в java.lang.Class.getResourceAsStream(Class.java:1037) в com.android.i18n.phonenumbers.PhoneNumberUtil.loadMetadataFromFile(PhoneNumberUtil.java:585) на com.android.i18n.phonenumbers.PhoneNumberUtil.getMetadataForRegion(PhoneNumberUtil.java:1925) на com.android.i18n.phonentil.Nj по адресу com.android.i18n.phonenumbers.PhoneNumberUtil.parseAndKeepRawInput(PhoneNumberUtil.java:2679) по адресу com.android.i18n.phonenumbers.PhoneNumberUtil.parseAndKeepRawInput (PhoneNumberUtil.java:2.aron (PhoneNumberMatcher.java:418) на com.android.i18n.phonenumbers.PhoneNumberMatcher.extractMatch(PhoneNumberMatcher.java:310) на com.android.i18n.phonenumbers.PhoneNumberMatcher.find(PhoneNumberMatcher.java:240.) На com i18n.phonenumbers.PhoneNumberMatcher.hasNext(PhoneNumberMatcher.java:652) в android.text.util.Linkify.gatherTelLinks(Linkify.java:454) в android.text.util.Linkify.addLinks(Linkify.java:230) и в.widget.TextView.setText(TextView.java:3749) в android.widget.TextView.setText(TextView.java:3671) в android.widget.TextView.(TextView.java:1270) в android.support.v7.widget.AppCompatTextView.(AppCompatTextView.java:44) в android.support.v7.widget.AppCompatTextView.(AppCompatTextView.java:40) в android.support.v7.internal.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:103) в android.support.v7.app7.AppCompatlempateIlegate 802..onCreateView(LayoutInflater.java:172) в android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:684) в android.view.LayoutInflater.rInflate(LayoutInflater.java:755) в android.view.LayoutInlate.r. Java:758) на android.view.LayoutInflater.parseInclude(LayoutInflater.java:839) t android.view.LayoutInflater.rInflate(LayoutInflater.java:745) в android.view.LayoutInflater.rInflate(LayoutInflater.java:758) в android.view.LayoutInflater.inflate(LayoutInflater.java:492) в android.view.LayoutInflater.inflate(LayoutInflater.java:397)
Изменить: теперь я использую ViewStub для загрузки этого представления по требованию, чтобы он не замедлял нормальную загрузку приложения
1 ответ
Трассировка стека определенно выглядит как нечто нормальное. По крайней мере, это не ваш код, это система.
Из документов:
Но вы не обязаны исправлять все, что находит StrictMode. В частности, во многих случаях жизненного цикла часто требуется доступ к диску. Используйте StrictMode, чтобы найти вещи, которые вы сделали случайно.