2015-05-10 59 views
0

最近我開始開發android應用程序,當在模擬器中編譯應用程序時,進程終止。在Android中的錯誤 - Eclipse

logcat的:

05-10 17:55:21.539: D/AndroidRuntime(4293): Shutting down VM 
05-10 17:55:21.539: W/dalvikvm(4293): threadid=1: thread exiting with uncaught exception (group=0x40020578) 
05-10 17:55:21.562: E/AndroidRuntime(4293): FATAL EXCEPTION: main 
05-10 17:55:21.562: E/AndroidRuntime(4293): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{br.me.example.clientes/br.me.example.clientes.Principal}: java.lang.ClassNotFoundException: br.me.example.clientes.Principal in loader dalvik.system.PathClassLoader[/data/app/br.me.example.clientes-2.apk] 
05-10 17:55:21.562: E/AndroidRuntime(4293):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1573) 
05-10 17:55:21.562: E/AndroidRuntime(4293):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667) 
05-10 17:55:21.562: E/AndroidRuntime(4293):  at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
05-10 17:55:21.562: E/AndroidRuntime(4293):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935) 
05-10 17:55:21.562: E/AndroidRuntime(4293):  at android.os.Handler.dispatchMessage(Handler.java:99) 
05-10 17:55:21.562: E/AndroidRuntime(4293):  at android.os.Looper.loop(Looper.java:130) 
05-10 17:55:21.562: E/AndroidRuntime(4293):  at android.app.ActivityThread.main(ActivityThread.java:3687) 
05-10 17:55:21.562: E/AndroidRuntime(4293):  at java.lang.reflect.Method.invokeNative(Native Method) 
05-10 17:55:21.562: E/AndroidRuntime(4293):  at java.lang.reflect.Method.invoke(Method.java:507) 
05-10 17:55:21.562: E/AndroidRuntime(4293):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867) 
05-10 17:55:21.562: E/AndroidRuntime(4293):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625) 
05-10 17:55:21.562: E/AndroidRuntime(4293):  at dalvik.system.NativeStart.main(Native Method) 
05-10 17:55:21.562: E/AndroidRuntime(4293): Caused by: java.lang.ClassNotFoundException: br.me.example.clientes.Principal in loader dalvik.system.PathClassLoader[/data/app/br.me.example.clientes-2.apk] 
05-10 17:55:21.562: E/AndroidRuntime(4293):  at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240) 
05-10 17:55:21.562: E/AndroidRuntime(4293):  at java.lang.ClassLoader.loadClass(ClassLoader.java:551) 
05-10 17:55:21.562: E/AndroidRuntime(4293):  at java.lang.ClassLoader.loadClass(ClassLoader.java:511) 
05-10 17:55:21.562: E/AndroidRuntime(4293):  at android.app.Instrumentation.newActivity(Instrumentation.java:1021) 
05-10 17:55:21.562: E/AndroidRuntime(4293):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1565) 
05-10 17:55:21.562: E/AndroidRuntime(4293):  ... 11 more 

類主要

package br.me.clientes; 
 

 
import br.me.example.clientes.R; 
 
import android.app.Activity; 
 
import android.content.Intent; 
 
import android.os.Bundle; 
 
import android.view.View; 
 
import android.widget.Button; 
 

 
public class Principal extends Activity { 
 
\t @Override 
 
\t protected void onCreate(Bundle savedInstanceState) { 
 
\t \t super.onCreate(savedInstanceState); 
 
\t \t setContentView(R.layout.principal); 
 

 
\t \t Button btnCadastro = (Button) findViewById(R.id.btnCadastro); 
 
\t \t Button btnListar = (Button) findViewById(R.id.btnListar); 
 
\t \t Button btnApagar = (Button) findViewById(R.id.btnApagar); 
 
\t \t Button btnSair = (Button) findViewById(R.id.btnSair); 
 

 
\t \t btnCadastro.setOnClickListener(new View.OnClickListener() { 
 

 
\t \t \t @Override 
 
\t \t \t public void onClick(View v) { 
 
\t \t \t \t // TODO Auto-generated method stub 
 
\t \t \t \t startActivity(new Intent(getBaseContext(), Cadastro.class)); 
 

 
\t \t \t } 
 
\t \t }); 
 

 
\t \t btnListar.setOnClickListener(new View.OnClickListener() { 
 

 
\t \t \t @Override 
 
\t \t \t public void onClick(View v) { 
 
\t \t \t \t // TODO Auto-generated method stub 
 
\t \t \t \t startActivity(new Intent(getBaseContext(), Cadastro.class)); 
 

 
\t \t \t } 
 
\t \t }); 
 

 
\t \t btnApagar.setOnClickListener(new View.OnClickListener() { 
 

 
\t \t \t @Override 
 
\t \t \t public void onClick(View v) { 
 
\t \t \t \t // TODO Auto-generated method stub 
 
\t \t \t \t startActivity(new Intent(getBaseContext(), Cadastro.class)); 
 

 
\t \t \t } 
 
\t \t }); 
 

 
\t \t btnSair.setOnClickListener(new View.OnClickListener() { 
 

 
\t \t \t @Override 
 
\t \t \t public void onClick(View v) { 
 
\t \t \t \t // TODO Auto-generated method stub 
 
\t \t \t \t startActivity(new Intent(getBaseContext(), Cadastro.class)); 
 

 
\t \t \t } 
 
\t \t }); 
 

 
\t } 
 

 
}

類Cadastro

package br.me.clientes; 
 

 
import android.app.Activity; 
 
import android.app.ProgressDialog; 
 
import android.graphics.Color; 
 
import android.os.Bundle; 
 
import android.os.Handler; 
 
import android.os.Message; 
 
import android.view.View; 
 
import android.widget.Button; 
 
import android.widget.EditText; 
 
import android.widget.Toast; 
 
import br.me.example.clientes.R; 
 

 
public class Cadastro extends Activity implements Runnable { 
 

 
\t private ProgressDialog pd; 
 
\t private String valor; 
 
\t private EditText txtNome; 
 
\t private EditText txtEmail; 
 

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

 
\t \t Button btnOk = (Button) findViewById(R.id.btnOk); 
 
\t \t txtNome = (EditText) findViewById(R.id.txtNome); 
 
\t \t txtEmail = (EditText) findViewById(R.id.txtEmail); 
 
\t \t final EditText txtEndereco = (EditText) findViewById(R.id.txtEndereco); 
 
\t \t final EditText txtNumero = (EditText) findViewById(R.id.txtNumero); 
 

 
\t \t btnOk.setOnClickListener(new View.OnClickListener() { 
 

 
\t \t \t @Override 
 
\t \t \t public void onClick(View v) { 
 
\t \t \t \t pd = ProgressDialog.show(Cadastro.this, "Aguarde", 
 
\t \t \t \t \t \t "Cadastrando informações", true, false); 
 
\t \t \t \t Thread t = new Thread(Cadastro.this); 
 
\t \t \t \t t.start(); 
 

 
\t \t \t } 
 
\t \t }); 
 

 
\t } 
 

 
\t @Override 
 
\t public void run() { 
 
\t \t // TODO Auto-generated method stub 
 
\t \t valor = txtNome.getText().toString(); 
 

 
\t \t if (txtNome.getText().toString().equals(" ")) { 
 
\t \t \t h2.sendEmptyMessage(0); 
 
\t \t } 
 

 
\t } 
 

 
\t private Handler h = new Handler() { 
 
\t \t @Override 
 
\t \t public void handleMessage(Message msg) { 
 
\t \t \t pd.dismiss(); 
 
\t \t \t Toast t = Toast.makeText(getBaseContext(), txtNome.getText(), 
 
\t \t \t \t \t Toast.LENGTH_SHORT); 
 
\t \t \t t.show(); 
 

 
\t \t } 
 
\t }; 
 

 
\t private Handler h2 = new Handler() { 
 
\t \t @Override 
 
\t \t public void handleMessage(Message msg) { 
 
\t \t \t pd.dismiss(); 
 
\t \t \t Toast t = Toast.makeText(getBaseContext(), "Preencha o campo Nome", 
 
\t \t \t \t \t Toast.LENGTH_SHORT); 
 
\t \t \t t.show(); 
 
\t \t \t txtNome.setBackgroundColor(Color.RED); 
 

 
\t \t } 
 
\t }; 
 

 
}

Android清單

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
 
    package="br.me.example.clientes" 
 
    android:versionCode="1" 
 
    android:versionName="1.0" > 
 

 
    <uses-sdk 
 
     android:minSdkVersion="8" 
 
     android:targetSdkVersion="21" /> 
 

 
    <application 
 
     android:allowBackup="true" 
 
     android:icon="@drawable/ic_launcher" 
 
     android:label="@string/app_name" 
 
     android:theme="@style/AppTheme" > 
 
     <activity 
 
      android:name=".Principal"> 
 
      <intent-filter> 
 
      <action android:name="android.intent.action.MAIN"> </action> 
 
      <category android:name="android.intent.category.LAUNCHER"> </category>  
 
     
 
     </intent-filter> 
 
     </activity> 
 
     
 
     <activity android:name=".Cadastro"></activity> 
 
    </application> 
 

 
</manifest>

就緒。

如果你需要的東西讓我知道。

+1

請發佈您的代碼,以便我們可以幫助您。 –

+0

也請包含您的AndroidManifest.xml。日誌顯示系統正在嘗試加載'br.me.example.clientes.Principal',是否真的有一個帶有這樣一個名字的Activity? – vzsg

+0

更新了主題。 – Matheus

回答

0

您的軟件包名稱有問題。 在Manifest中指定您的默認包是br.me.example.clientes。 然後您通過.Principal指定您的班級,它將使用以下路徑br.me.example.clientes.Principal搜索班級。

但正如我們在您的課堂上看到的Principal,它位於此處br.me.clientes.Principal

嘗試修復Manifest或類中的路徑。

+0

非常感謝,它的工作! – Matheus

+0

謝謝大家,這是一個細節,使差異。 – Matheus