يتعطل التطبيق Android 4.3+ في التعليمات البرمجية الأصلية مع التطبيق باستخدام حسابات المصفوفة على اللوحة القماشية

StackOverflow https://stackoverflow.com//questions/20022243

سؤال

قبل أن تقضي وقتًا أطول من اللازم في قراءة هذا:سأجيب على هذا السؤال بنفسي.لقد أمضيت يومًا كاملاً في تصحيح هذا الأمر واعتقدت أنني يجب أن أشاركه.

أنا مطور تطبيق يعد في الأساس نوعًا من التنقل خطوة بخطوة في ملاعب الجولف.على هذا النحو، لدي صور تحتاج إلى تدويرها لجعل الصورة موجهة نحو الشمال.ومن الواضح أن هذا يتطلب بعض التحولات المصفوفة.

بعد أن تم طرح Android 4.3 على هاتف HTC One، تلقيت بعض الشكاوى بأن التطبيق كان يُغلق ببساطة عندما يريد شخص ما استخدامه."للاسف توقف."

لم توضح جلسة تصحيح الأخطاء الأولية أي شيء.لم يكن هناك أي استثناء تم طرحه، لذلك لا يوجد شيء يمكن تجاوزه في البداية.لقد وجدت ما يلي في سجلاتي:

11-12 14:12:56.257:تأكيد/ليبك (5206):الإشارة القاتلة 11 (SIGSEGV) عند 0x00000000 (الرمز=1)، الخيط 5206 (ndroid.appname)

مع عدم وجود مكان للبدء في تصحيح الأخطاء، كنت أمضي فترة طويلة من المدرسة القديمة في التنقل عبر كل شيء، وتحديد المشتبه بهم المحتملين والكثير من الكافيين، ولكن في النهاية اكتشفت ذلك بمساعدة زميل كتب الكود الذي أدى إلى تحول ليكون الجاني.

هل كانت مفيدة؟

المحلول

كما اتضح، هذا الخط كان يسبب كل المشاكل:Canvas.setMatrix(null);

كان القصد من هذا السطر بسيطًا:قم بإعادة ضبط مصفوفة التحويل مرة أخرى إلى مصفوفة الهوية بحيث يمكن تطبيق تحويل جديد.وفق وثائق, ، فهذا مسموح:

استبدل المصفوفة الحالية بالكامل بالمصفوفة المحددة.إذا كانت معلمة المصفوفة فارغة، فسيتم إعادة تعيين المصفوفة الحالية إلى هويتها.

يبدو أن الأشخاص الذين يعملون على Android قاموا بإزالة هذا التحقق من وجود معلمة فارغة من كود 4.3 ولكنهم لم يرون أنه من الضروري تحديث الوثائق أو رمي استثناء لائق.وبدلاً من ذلك، فإن هذا الخط يعطل كل شيء دون أي دليل على مكان حدوثه ولماذا.

لقد قدمت أ تقرير الشوائب إذا كان أي شخص مهتما.آمل أن يساعد هذا الموضوع أو هذا الشخص شخصًا في نفس الموقف.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top