تطبيق Android Hello World لا يعمل، ولا يتم عرض أي نص على المحاكي

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

  •  26-09-2019
  •  | 
  •  

سؤال

لقد قمت للتو بتثبيت SDK و ال ADT Eclipse plugin.ما كنت أحاول القيام به هو برنامج بسيط "Hello, World".أنا أستخدم 2.2 (8) API.هذا هو الكود الخاص بي:

package com.example.hello;

import android.app.Activity;
import android.widget.TextView;
import android.os.Bundle;


    public class HelloWorld extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) 
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            TextView txt = new TextView(this);
            txt.setText("Hello, Android");
            setContentView(txt);

        }
    }

لي Eclipse وحدة التحكم:

[2010-09-02 13:27:32 - HelloWorld] ------------------------------
[2010-09-02 13:27:32 - HelloWorld] Android Launch!
[2010-09-02 13:27:32 - HelloWorld] adb is running normally.
[2010-09-02 13:27:32 - HelloWorld] Performing com.example.hello.HelloWorld activity launch
[2010-09-02 13:27:32 - HelloWorld] Automatic Target Mode: Preferred AVD 'Android' is not available. Launching new emulator.
[2010-09-02 13:27:32 - HelloWorld] Launching a new emulator with Virtual Device 'Android'
[2010-09-02 13:28:12 - HelloWorld] New emulator found: emulator-5554
[2010-09-02 13:28:12 - HelloWorld] Waiting for HOME ('android.process.acore') to be launched...

وعلى المحاكي (5554:Android) لا يوجد شيء معروض سوى شاشة فارغة مع بصمة "Android" بخط رائع.ما الذي أفتقده بشكل أساسي؟

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

المحلول

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

عندما تتصل

setContentView(R.layout.main);

أنت تقول في الأساس "احصل على تخطيط XML المسمى "الرئيسي" الذي قمت بإنشائه واعرضه"

ثم بعد الحقيقة تقوم برمي هذا:

TextView txt = new TextView(this);
txt.setText("Hello, Android");
setContentView(txt);

في هذا الرمز تقول "قم بإنشاء عرض نصي جديد، وقم بتعيين نصه، ثم قم بعرض التخطيط الجديد الذي قمت بإنشائه للتو"

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

إذا لم تكن على دراية بتخطيط XML الذي نتحدث عنه، فافتح مشروعك في Eclipse وانتقل إلى YourProjectName/res/layout/main.xml.

شيء أخير، ربما ليس من الحكمة إنشاء نظام أساسي مستهدف 2.2 ما لم يكن هناك شيء تحتاجه حقًا في 2.2 API.يستخدم تطبيق "Hello, World" الخاص بك فقط TextView، وقد ظل هذا موجودًا إلى الأبد.البناء للإصدار 2.2 يعني أن المستخدمين الذين يستخدمون الإصدار 2.2 أو أعلى هم فقط من يمكنهم استخدام تطبيقك، وهو ما يستبعد في الوقت الحالي الكثير من الأشخاص (مثل جميع مستخدمي Droid Eris).يعد البناء مقابل 1.5 رهانًا آمنًا جدًا ولا يزال يمنحك الكثير لتلعب به مع زيادة جمهورك المستهدف إلى الحد الأقصى.

نصائح أخرى

انتظر لفترة. ما تراه هو تشغيل المحاكي.

نعم انتظر قليلا. يمكن للمحاكي أن يستغرق ما يصل إلى بضع دقائق للتحميل خاصة إذا كان لديك آلة بطيئة ...

أيضا ، استدعاء setContentView () مرتين ليست مثالية. حدد TextView الخاص بك في main.xml ، ورجع حقل النص من الكود الخاص بك. شيء من هذا القبيل:

TextView tv = (TextView)findViewById("textViewId");
tv.setText("Here goes the text!");

واجهت هذه المشكلة للغاية وقضيت مثل يوم كامل على الشبكة في البحث عن الحل. توقف سجل وحدة التحكم Eclipse عند:

[2011-04-02 10:32:57 - MMarketSurvey] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.okune.mmarketsurvey/.mmarketsurvey }

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

لاقتباس شودهانشه في موضوع المنتدى هذا:

كان كل شيء على ما يرام ولكن المحاكي كان على الشاشة الرئيسية وكان التطبيق يعمل في الخلفية. لقد تحولت إلى شاشة التطبيق ووجدت أن التطبيق كان يعمل بشكل جيد.

فقط اضغط على المنزل على لوحة المفاتيح ، انقر فوق التطبيقات على الشاشة ، ثم انقر فوق اسم التطبيق الخاص بك.

بعد الاتصال

setContentView(R.layout.main); 

لم تكن بحاجة إلى استخدامه مرة أخرى للإعداد text ل textview. يمكنك استخدامه مثل هذا.

TextView tv = new TextView(R.id.textview1);
tv.setText("Hello, Android");

سوف تعمل.

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

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