2012-06-04 2 views
1

Android 2.3.4 (에뮬레이터/전화)에서 완벽하게 작동하는 앱을 보유하고 있습니다. 하지만 안드로이드 4.0.3 (에뮬레이터/전화)에 설치하려고했는데 내가 작동하지 않을 때 작동하지 않습니다. 앱에서 이러한 클래스를 실행하는 나에게 오류가 표시되면 그것은 나에게이 메시지앱이 Android 4.0.3에서 작동하지 않지만 Android 2.3.4에서는

"Unfortunately AppName has stopped" 

을 보여줍니다

public class EmpleadosAct extends Activity { 

private ArrayList<String> datos; 
private ListView list; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    ActualizarVehiculos(); 

} 

public void ActualizarVehiculos() { 

    try { 
     NotesCenter messageCenter = new NotesCenterImpl(); 

     List<Vehiculo> vehiculo = messageCenter.getVehiculo(); 

     for (Vehiculo v : vehiculo) { 
      AndroidOpenDbHelper androidOpenDbHelperObj = new AndroidOpenDbHelper(
        this); 

      SQLiteDatabase sqliteDatabase = androidOpenDbHelperObj 
        .getWritableDatabase(); 

      ContentValues contentValues = new ContentValues(); 
      contentValues.put(AndroidOpenDbHelper.matricula, v.matricula); 

      long affectedColumnId = sqliteDatabase.insert("Vehiculos", 
        null, contentValues); 
      sqliteDatabase.close(); 
     } 
    } catch (Exception ex) { 
     Log.v("blah", ex.getMessage()); 

    } 

} 
} 

두 번째 클래스 : 처음에는

public class SeleccionarEmpleado extends Activity implements OnClickListener, 
OnItemClickListener { 

private ListView listaEmpleados; 
private EditText ECont; 
String text; 
Bundle dataBundle; 
public EmpleadosAct actemple; 
protected AppApplication app; 

private ListAdapter uGraduateListAdapter; 

private ArrayList<UndergraduateDetailsPojo> pojoArrayList; 
private String contraseña; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.seleccionarempleado); 

    ***Intent actServicios = new Intent(this, EmpleadosAct.class); 
    startActivity(actServicios);*** 

    listaEmpleados = (ListView) findViewById(R.id.ListaEmpleados); 
    listaEmpleados.setOnItemClickListener(this); 

    pojoArrayList = new ArrayList<UndergraduateDetailsPojo>(); 

    uGraduateListAdapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_list_item_1, populateList()); 

    listaEmpleados.setAdapter(uGraduateListAdapter); 

} 

public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater menuInflater = getMenuInflater(); 
    menuInflater.inflate(R.menu.menu, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 

    switch (item.getItemId()) { 
    case R.id.actualizar: 
     //Intent actualizarEmpleados = new Intent(this,EmpleadosAct.class); 
     //startActivity(actualizarEmpleados); 


     //return true; 

    case R.id.opciones: 
     Toast.makeText(SeleccionarEmpleado.this, "Save is Selected", 
       Toast.LENGTH_SHORT).show(); 
     return true; 

    default: 
     return super.onOptionsItemSelected(item); 
    } 
} 

public void onClick(View v) { 
    Intent addNewUndergraduateIntent = new Intent(this, 
      InsertarPedido.class); 
    startActivity(addNewUndergraduateIntent); 
} 

public List<String> populateList() { 

    List<String> uGraduateNamesList = new ArrayList<String>(); 

    AndroidOpenDbHelper openHelperClass = new AndroidOpenDbHelper(this); 

    SQLiteDatabase sqliteDatabase = openHelperClass.getReadableDatabase(); 

    Cursor cursor = sqliteDatabase.query("Empleados", null, null, null, 
      null, null, null); 

    startManagingCursor(cursor); 

    while (cursor.moveToNext()) { 

     String idempleado = cursor.getString(cursor 
       .getColumnIndex(AndroidOpenDbHelper.idempleado)); 
     String nombre = cursor.getString(cursor 
       .getColumnIndex(AndroidOpenDbHelper.nombre)); 
     String primerapellido = cursor.getString(cursor 
       .getColumnIndex(AndroidOpenDbHelper.primerapellido)); 
     String segundoapellido = cursor.getString(cursor 
       .getColumnIndex(AndroidOpenDbHelper.segundoapellido)); 
     String contra = cursor.getString(cursor 
       .getColumnIndex(AndroidOpenDbHelper.contra)); 

     UndergraduateDetailsPojo ugPojoClass = new UndergraduateDetailsPojo(); 
     ugPojoClass.setIdEmpleado(idempleado); 
     ugPojoClass.setNombreEmpleado(nombre); 
     ugPojoClass.setPrimerApellido(primerapellido); 
     ugPojoClass.setSegundoApellido(segundoapellido); 
     ugPojoClass.setContra(contra); 

     pojoArrayList.add(ugPojoClass); 

     uGraduateNamesList.add(nombre + " " + primerapellido + " " 
       + segundoapellido); 
    } 

    sqliteDatabase.close(); 

    return uGraduateNamesList; 
} 

@Override 
protected void onResume() { 
    super.onResume(); 
    uGraduateListAdapter = new ArrayAdapter(this, 
      android.R.layout.simple_list_item_1, populateList()); 
    listaEmpleados.setAdapter(uGraduateListAdapter); 
} 

public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 

    UndergraduateDetailsPojo clickedObject = pojoArrayList.get(arg2); 

    String Empleado = clickedObject.getNombreEmpleado() + " " 
      + clickedObject.getPrimerApellido() + " " 
      + clickedObject.getSegundoApellido(); 

    Empleado empleadoseleccionado = new Empleado(); 
    empleadoseleccionado.id = clickedObject.getIdEmpleado(); 
    empleadoseleccionado.nombre = Empleado; 
    app = (AppApplication)getApplicationContext(); 
    app.setempleadoActual(empleadoseleccionado); 
    app.setempleadoId(empleadoseleccionado); 

} 
} 

는 두 번째 클래스를 실행 두 번째 클래스에는 첫 번째 클래스를 여는 Intent가 있습니다. 퍼스트 클래스는 일부 원격 서버에서 안드로이드 SQLite 데이터베이스에 데이터를 추가합니다. 그리고 두 번째 클래스는 안드로이드 SQLite 데이터베이스에서이 결과를 보여줍니다.

06-04 21:08:13.034: W/dalvikvm(517): threadid=1: thread exiting with uncaught exception (group=0x409c01f8) 
06-04 21:08:13.054: E/AndroidRuntime(517): FATAL EXCEPTION: main 
06-04 21:08:13.054: E/AndroidRuntime(517): java.lang.RuntimeException: Unable to start activity ComponentInfo{dokesim.net/myapp.net.EmpleadosAct}: java.lang.NullPointerException: println needs a message 
06-04 21:08:13.054: E/AndroidRuntime(517): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956) 
06-04 21:08:13.054: E/AndroidRuntime(517): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 
06-04 21:08:13.054: E/AndroidRuntime(517): at android.app.ActivityThread.access$600(ActivityThread.java:123) 
06-04 21:08:13.054: E/AndroidRuntime(517): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147) 
06-04 21:08:13.054: E/AndroidRuntime(517): at android.os.Handler.dispatchMessage(Handler.java:99) 
06-04 21:08:13.054: E/AndroidRuntime(517): at android.os.Looper.loop(Looper.java:137) 
06-04 21:08:13.054: E/AndroidRuntime(517): at android.app.ActivityThread.main(ActivityThread.java:4424) 
06-04 21:08:13.054: E/AndroidRuntime(517): at java.lang.reflect.Method.invokeNative(Native Method) 
06-04 21:08:13.054: E/AndroidRuntime(517): at java.lang.reflect.Method.invoke(Method.java:511) 
06-04 21:08:13.054: E/AndroidRuntime(517): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
06-04 21:08:13.054: E/AndroidRuntime(517): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
06-04 21:08:13.054: E/AndroidRuntime(517): at dalvik.system.NativeStart.main(Native Method) 
06-04 21:08:13.054: E/AndroidRuntime(517): Caused by: java.lang.NullPointerException: println needs a message 
06-04 21:08:13.054: E/AndroidRuntime(517): at android.util.Log.println_native(Native Method) 
06-04 21:08:13.054: E/AndroidRuntime(517): at android.util.Log.v(Log.java:117) 
06-04 21:08:13.054: E/AndroidRuntime(517): at myapp.net.EmpleadosAct.ActualizarVehiculos(EmpleadosAct.java:133) 
06-04 21:08:13.054: E/AndroidRuntime(517): at myapp.net.EmpleadosAct.onCreate(EmpleadosAct.java:24) 
06-04 21:08:13.054: E/AndroidRuntime(517): at android.app.Activity.performCreate(Activity.java:4465) 
06-04 21:08:13.054: E/AndroidRuntime(517): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 
06-04 21:08:13.054: E/AndroidRuntime(517): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920) 
06-04 21:08:13.054: E/AndroidRuntime(517): ... 11 more 

두 번째 로그 :

06-04 21:40:03.225: V/blah(720): Error happened: 
06-04 21:40:03.225: V/blah(720): android.os.NetworkOnMainThreadException 
06-04 21:40:03.225: V/blah(720): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1099) 
06-04 21:40:03.225: V/blah(720): at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84) 
06-04 21:40:03.225: V/blah(720): at libcore.io.IoBridge.connectErrno(IoBridge.java:127) 
06-04 21:40:03.225: V/blah(720): at libcore.io.IoBridge.connect(IoBridge.java:112) 
06-04 21:40:03.225: V/blah(720): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192) 
06-04 21:40:03.225: V/blah(720): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459) 
06-04 21:40:03.225: V/blah(720): at java.net.Socket.connect(Socket.java:842) 
06-04 21:40:03.225: V/blah(720): at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119) 
06-04 21:40:03.225: V/blah(720): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144) 
06-04 21:40:03.225: V/blah(720): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164) 
06-04 21:40:03.225: V/blah(720): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119) 
06-04 21:40:03.225: V/blah(720): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360) 
06-04 21:40:03.225: V/blah(720): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555) 
06-04 21:40:03.225: V/blah(720): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) 
06-04 21:40:03.225: V/blah(720): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465) 
06-04 21:40:03.225: V/blah(720): at myapp.net.HttpNote.doGet(HttpNote.java:32) 
06-04 21:40:03.225: V/blah(720): at myapp.net.NotesCenterImpl.getVehiculo(NotesCenterImpl.java:23) 
06-04 21:40:03.225: V/blah(720): at myapp.net.EmpleadosAct.ActualizarVehiculo(EmpleadosAct.java:91) 
06-04 21:40:03.225: V/blah(720): at myapp.net.EmpleadosAct.onCreate(EmpleadosAct.java:24) 
06-04 21:40:03.225: V/blah(720): at android.app.Activity.performCreate(Activity.java:4465) 
06-04 21:40:03.225: V/blah(720): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 
06-04 21:40:03.225: V/blah(720): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920) 
06-04 21:40:03.225: V/blah(720): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 
06-04 21:40:03.225: V/blah(720): at android.app.ActivityThread.access$600(ActivityThread.java:123) 
06-04 21:40:03.225: V/blah(720): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147) 
06-04 21:40:03.225: V/blah(720): at android.os.Handler.dispatchMessage(Handler.java:99) 
06-04 21:40:03.225: V/blah(720): at android.os.Looper.loop(Looper.java:137) 
06-04 21:40:03.225: V/blah(720): at android.app.ActivityThread.main(ActivityThread.java:4424) 
06-04 21:40:03.225: V/blah(720): at java.lang.reflect.Method.invokeNative(Native Method) 
06-04 21:40:03.225: V/blah(720): at java.lang.reflect.Method.invoke(Method.java:511) 
06-04 21:40:03.225: V/blah(720): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
06-04 21:40:03.225: V/blah(720): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
06-04 21:40:03.225: V/blah(720): at dalvik.system.NativeStart.main(Native Method) 

은 그래서 4.0.3과 잘 모든 노력 2.3.4 안드로이드에서 그 원인을이 외설 '

는 로그입니다 티? 내 코드에 4.0.3 버전을 지원하지 않는 문제가 있습니까?

답변이나 제안에 감사드립니다.

답변

6
Log.v("blah", ex.getMessage()); 

문제는 ex.getMessage()null를 반환하는 것입니다. "`Log.v (TAG : 당신은 null를 확인할 수 있지만, 더 좋은 방법은 로그 방법에 대한 세 번째 매개 변수로 명시 적으로 예외를 전달하는 것입니다 :

Log.v("blah", "Error happened: ", ex); 
+0

이 더 좋은 근본 원인으로 예외를 전달합니다 _________ ", ex); ' –

+0

좋은 제안입니다. –

+0

시간 내 주셔서 감사합니다. 코드를 수정하고 두 번째 로그를 추가했습니다. – HaOx

관련 문제