2013-12-10 13 views
9

Ho sviluppato un'app di esempio che segue il servizio di posizione di Google doc. Esecuzione Si è verificato un arresto anomalo per la classe MainActivity, ma se rimuovo le implementazioni per i callback di posizione GooglePlayServicesClient.ConnectionCallbacks e GooglePlayServicesClient.OnConnectionFailedListener viene avviato.Principale classe di attività non trovata se implementa GooglePlayServicesClient.ConnectionCallbacks/OnConnectionFailedListener

Utilizzo Android Studio e sono abbastanza sicuro di aver configurato bene il servizio Google Play e l'AVD (Nexus 7 Google API 19).

Questa è l'attività principale:

package com.demo.app; 

import android.support.v7.app.ActionBarActivity; 
import android.support.v4.app.Fragment; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ProgressBar; 
import android.widget.TextView; 

import com.google.android.gms.common.ConnectionResult; 
import com.google.android.gms.common.GooglePlayServicesClient; 
import com.google.android.gms.location.LocationClient; 
import com.google.android.gms.location.LocationRequest; 

public class MainActivity extends ActionBarActivity implements 
      GooglePlayServicesClient.ConnectionCallbacks, 
      GooglePlayServicesClient.OnConnectionFailedListener { 

    // Handles to UI widgets 
    private TextView mLatLng; 
    private TextView mAddress; 
    private ProgressBar mActivityIndicator; 
    private TextView mConnectionState; 
    private TextView mConnectionStatus; 

    // A request to connect to Location Services 
    private LocationRequest mLocationRequest; 

    // Stores the current instantiation of the location client in this object 
    private LocationClient mLocationClient; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     if (savedInstanceState == null) { 
      getSupportFragmentManager().beginTransaction() 
        .add(R.id.container, new PlaceholderFragment()) 
        .commit(); 
     } 

     // Get handles to the UI view objects 
     mLatLng = (TextView) findViewById(R.id.lat_lng); 
     mAddress = (TextView) findViewById(R.id.address); 
     mActivityIndicator = (ProgressBar) findViewById(R.id.address_progress); 
     mConnectionState = (TextView) findViewById(R.id.text_connection_state); 
     mConnectionStatus = (TextView) findViewById(R.id.text_connection_status); 

     /* 
     * Create a new location client, using the enclosing class to 
     * handle callbacks. 
     */ 
     //mLocationClient = new LocationClient(this, this, this); 
    } 


    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 

     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 
     if (id == R.id.action_settings) { 
      return true; 
     } 
     return super.onOptionsItemSelected(item); 
    } 

    @Override 
    public void onConnected(Bundle bundle) { 

    } 

    @Override 
    public void onDisconnected() { 

    } 

    @Override 
    public void onConnectionFailed(ConnectionResult connectionResult) { 

    } 

    /** 
    * A placeholder fragment containing a simple view. 
    */ 
    public static class PlaceholderFragment extends Fragment { 

     public PlaceholderFragment() { 
     } 

     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, 
       Bundle savedInstanceState) { 
      View rootView = inflater.inflate(R.layout.fragment_main, container, false); 
      return rootView; 
     } 
    } 
} 

L'eccezione è:

java.lang.RuntimeException: Unable to instantiate activity  ComponentInfo{com.demo.app/com.demo.app.MainActivity}: java.lang.ClassNotFoundException: com.demo.app.MainActivity in loader dalvik.system.PathClassLoader[/data/app/com.demo.app- 2.apk] 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2591) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2685) 
     at android.app.ActivityThread.access$2300(ActivityThread.java:126) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2038) 
     at android.os.Handler.dispatchMessage(Handler.java:99) 
     at android.os.Looper.loop(Looper.java:123) 
     at android.app.ActivityThread.main(ActivityThread.java:4633) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:521) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
     at dalvik.system.NativeStart.main(Native Method) 
    Caused by: java.lang.ClassNotFoundException: com.demo.app.MainActivity in loader dalvik.system.PathClassLoader[/data/app/com.demo.app-2.apk] 
     at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:573) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:532) 
    [...] 
+1

Quali sono gli errori esatti che stai ricevendo? –

+0

Causato da: java.lang.ClassNotFoundException: com.demo.app.MainActivity nel caricatore dalvik.system.PathClassLoader [/data/app/com.demo.app-2.apk] – devmao

+2

Hai mai risolto il problema? –

risposta

0

essere sicuri che i pacchetti in questa cartella Extra sono installati o aggiornati ad una nuova versione di sdk come (Google Play Services, Google Repository, ecc.)

Problemi correlati