Autore Topic: Aiuto programmino Activity  (Letto 542 volte)

Offline Elmvor

  • Utente normale
  • ***
  • Post: 166
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Ubuntu 14.04, Windows 8.1
Aiuto programmino Activity
« il: 01 Dicembre 2011, 10:52:04 CET »
0
Seguendo la guida di un certo libro sto realizzando un piccolo programmino per testare il funzionamento di un'activity. All'avvio
del programma ho il seguente messaggio di errore in console:

[2011-12-01 10:34:20 - Unexpected error while launching logcat. Try reselecting the device.]device not found
com.android.ddmlib.AdbCommandRejectedException: device not found
   at com.android.ddmlib.AdbHelper.setDevice(AdbHelper.java:736)
   at com.android.ddmlib.AdbHelper.executeRemoteCommand(AdbHelper.java:373)
   at com.android.ddmlib.Device.executeShellCommand(Device.java:319)
   at com.android.ddmuilib.logcat.LogCatReceiver$1.run(LogCatReceiver.java:100)
   at java.lang.Thread.run(Thread.java:636)


Allego il codice.

Prima Activity:

Codice (Java): [Seleziona]
package cap4.lyfecycleActivity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class LifecycleActivityTestActivity extends Activity
{

        // Contatore che descrive un possibile stato
        protected int counter = 0;

        /** Called when the activity is first created. */
        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
                super.onCreate(savedInstanceState);

                // Impostiamo il Layout
                setContentView(R.layout.main);
                // Bottone che permette di visualizzare la seconda Activity
                Button navButton = (Button) findViewById(R.id.navButton);
                navButton.setOnClickListener(new OnClickListener()
                {

                        @Override
                        public void onClick(View arg0)
                        {
                                // Andiamo in modo esplicito alla seconda
                                // Activity
                                Intent intent = new Intent(LifecycleActivityTestActivity.this,
                                                SecondActivity.class);
                                startActivity(intent);
                        }


                });
                // Bottone che permette di terminare l'attività corrente
                Button killButton = (Button) findViewById(R.id.killButton);
                killButton.setOnClickListener(new OnClickListener()
                {
                        @Override
                        public void onClick(View arg0)
                        {
                                finish();
                        }
                });
                // Bottone che incrementa il contatore come stato della attività
                Button countButton = (Button) findViewById(R.id.countButton);
                countButton.setOnClickListener(new OnClickListener()
                {
                        @Override
                        public void onClick(View arg0)
                        {
                                counter++;
                                showCounterState();
                        }
                });
                showCounterState();
        }

        @Override
        protected void onSaveInstanceState(Bundle outState)
        {
                super.onSaveInstanceState(outState);
                // Salviamo lo stato del contatore
                outState.putInt("counter", counter);
        }

        protected void onRestoreInstanceState(Bundle savedInstanceState)
        {
                super.onSaveInstanceState(savedInstanceState);
                counter = savedInstanceState.getInt("counter");
                showCounterState();
        }

        protected String getActivityName()
        {
                return "FIRST ACTIVITY";
        }

        @Override
        protected void onDestroy()
        {
                super.onDestroy();
        }

        @Override
        protected void onPause()
        {
                super.onPause();
        }

        @Override
        protected void onRestart()
        {
                super.onRestart();
        }

        @Override
        protected void onResume()
        {
                super.onResume();
        }

        @Override
        protected void onStart()
        {
                super.onStart();
        }

        @Override
        protected void onStop()
        {
                super.onStop();
        }

        private void showCounterState()
        {
                TextView textView = (TextView) findViewById(R.id.counterValue);
                textView.setText(" Counter: " + counter);
        }

}

Seconda Activity:

Codice (Java): [Seleziona]
package cap4.lyfecycleActivity;

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

public class SecondActivity extends LifecycleActivityTestActivity
{

        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
                // TODO Auto-generated method stub
                super.onCreate(savedInstanceState);
        TextView output = (TextView)findViewById(R.id.output);
        String text = getResources().getString(R.string.second_label);
        output.setText(text);
        }
       
    protected String getActivityName()
    {
        return "SECOND ACTIVITY";
    }  
}

main.xml

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:orientation="vertical" >

    <TextView
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:text="@string/first_label"
       android:id="@+id/output" />
   
    <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:id="@+id/counterValue" />
       
    <Button
       android:id="@+id/navButton"
       android:layout_width="140dp"
       android:layout_height="wrap_content"
       android:text="navButton" />

    <Button
       android:id="@+id/killButton"
       android:layout_width="140dp"
       android:layout_height="wrap_content"
       android:text="killButton" />

    <Button
       android:id="@+id/countButton"
       android:layout_width="140dp"
       android:layout_height="wrap_content"
       android:text="countButton" />

</LinearLayout>

strings.xml

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="first_label">FIRST ACTIVITY</string>
    <string name="second_label">SECOND ACTIVITY</string>
    <string name="app_name">LifecycleActivityTest</string>
</resources>

AndroidManifest.xml

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="cap4.lyfecycleActivity"
   android:versionCode="1"
   android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="10" />

    <application
       android:icon="@drawable/ic_launcher"
       android:label="@string/app_name" >
        <activity
           android:label="@string/app_name"
           android:name=".LyfecycleActivityTestActivity" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="SecondActivity"></activity>
    </application>
</manifest>

Che significa?
« Ultima modifica: 01 Dicembre 2011, 11:09:43 CET da Elmvor »

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +507
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Aiuto programmino Activity
« Risposta #1 il: 01 Dicembre 2011, 11:08:58 CET »
0
Siginifica che ogni tanto l'adb rompe le balle.
Prova a riavviare l'emulatore e a riavviare l'adb (da command line adb kill-server e poi adb start-server).

Offline Elmvor

  • Utente normale
  • ***
  • Post: 166
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Ubuntu 14.04, Windows 8.1
Re:Aiuto programmino Activity
« Risposta #2 il: 01 Dicembre 2011, 11:12:12 CET »
0
Ho chiuso emule e l'ho riaperto. Il programma viene installato correttamente ma non parte...

Nel logcat:

12-01 10:17:10.380: E/AndroidRuntime(331): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{cap4.lyfecycleActivity/cap4.lyfecycleActivity.LyfecycleActivityTestActivity}: java.lang.ClassNotFoundException: cap4.lyfecycleActivity.LyfecycleActivityTestActivity in loader dalvik.system.PathClassLoader[/data/app/cap4.lyfecycleActivity-1.apk]

Ho risolto, anche se non so come.
« Ultima modifica: 01 Dicembre 2011, 11:38:01 CET da Elmvor »