2012-04-08 2 views
2

Ниже приведен список моего примера приложения TodoListItemView. Мне жаль, что я написал много кода, но не знаю, почему он не работает.«java.lang.InstantiationException» при запуске приложения для Android

04-08 16:46:23.023: D/AndroidRuntime(3167): Shutting down VM 
04-08 16:46:23.023: W/dalvikvm(3167): threadid=1: thread exiting with uncaught exception (group=0x40015560) 
04-08 16:46:23.134: E/AndroidRuntime(3167): FATAL EXCEPTION: main 
04-08 16:46:23.134: E/AndroidRuntime(3167): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.rasi.todolist/com.rasi.todolist.TodoListItemView}: java.lang.InstantiationException: com.rasi.todolist.TodoListItemView 
04-08 16:46:23.134: E/AndroidRuntime(3167):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569) 
04-08 16:46:23.134: E/AndroidRuntime(3167):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 
04-08 16:46:23.134: E/AndroidRuntime(3167):  at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
04-08 16:46:23.134: E/AndroidRuntime(3167):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
04-08 16:46:23.134: E/AndroidRuntime(3167):  at android.os.Handler.dispatchMessage(Handler.java:99) 
04-08 16:46:23.134: E/AndroidRuntime(3167):  at android.os.Looper.loop(Looper.java:123) 
04-08 16:46:23.134: E/AndroidRuntime(3167):  at android.app.ActivityThread.main(ActivityThread.java:3683) 
04-08 16:46:23.134: E/AndroidRuntime(3167):  at java.lang.reflect.Method.invokeNative(Native Method) 
04-08 16:46:23.134: E/AndroidRuntime(3167):  at java.lang.reflect.Method.invoke(Method.java:507) 
04-08 16:46:23.134: E/AndroidRuntime(3167):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
04-08 16:46:23.134: E/AndroidRuntime(3167):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
04-08 16:46:23.134: E/AndroidRuntime(3167):  at dalvik.system.NativeStart.main(Native Method) 
04-08 16:46:23.134: E/AndroidRuntime(3167): Caused by: java.lang.InstantiationException: com.rasi.todolist.TodoListItemView 
04-08 16:46:23.134: E/AndroidRuntime(3167):  at java.lang.Class.newInstanceImpl(Native Method) 
04-08 16:46:23.134: E/AndroidRuntime(3167):  at java.lang.Class.newInstance(Class.java:1409) 
04-08 16:46:23.134: E/AndroidRuntime(3167):  at android.app.Instrumentation.newActivity(Instrumentation.java:1021) 
04-08 16:46:23.134: E/AndroidRuntime(3167):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561) 
04-08 16:46:23.134: E/AndroidRuntime(3167):  ... 11 more 

Это код TodoList:

public class ToDoList extends Activity 
{ 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    Log.d("debug", "En TodoList"); 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    ListView myListView = (ListView)findViewById(R.id.myListView); 
    final EditText myEditText = (EditText)findViewById(R.id.myEditText); 

    final ArrayList<String> todoItems = new ArrayList<String>(); 
    int resID = R.layout.todolist_item; 
    final ArrayAdapter<String> aa; 

    aa = new ArrayAdapter<String>(this, 
            resID, 
            todoItems); 
    myListView.setAdapter(aa); 

    myEditText.setOnKeyListener(new OnKeyListener() 
    { 
     public boolean onKey(View v, int keyCode, KeyEvent event) 
     { 
      if (event.getAction() == KeyEvent.ACTION_DOWN) 
      { 
       if(keyCode == KeyEvent.KEYCODE_ENTER) 
       { 
        todoItems.add(0, myEditText.getText().toString()); 
        aa.notifyDataSetChanged(); 
        return true; 
       } 
      } 
      return false; 
     } 
    } 
    ); 
} 
} 

Это код TodoListItemView:

public class TodoListItemView extends TextView 
{ 
    public TodoListItemView(Context context, AttributeSet ats, int ds) 
    { 
     super(context, ats, ds); 
     Log.d("debug", "TodoListItemView 3"); 
     init(); 
    } 

    public TodoListItemView(Context context) 
    { 
     super(context); 
     Log.d("debug", "TodoListItemView 2"); 
     init(); 
    } 

    public TodoListItemView(Context context, AttributeSet attrs) 
    { 
     super(context, attrs); 
     Log.d("debug", "TodoListItemView 1"); 
     init(); 
    } 

    private Paint marginPaint; 
    private Paint linePaint; 
    private int paperColor; 
    private float margin; 

    private void init() 
    { 
     Log.d("debug", "init inicio"); 
     Resources myResources = getResources(); 
     marginPaint = new Paint(Paint.ANTI_ALIAS_FLAG); 
     marginPaint.setColor(myResources.getColor(R.color.notepad_margin)); 
     linePaint = new Paint(Paint.ANTI_ALIAS_FLAG); 
     linePaint.setColor(myResources.getColor(R.color.notepad_lines)); 

     paperColor = myResources.getColor(R.color.notepad_paper); 
     margin = myResources.getDimension(R.dimen.notepad_margin); 
     Log.d("debug", "init fin"); 
    } 

    public void onDraw(Canvas canvas) 
    { 
     canvas.drawColor(paperColor); 

     canvas.drawLine(0, 0, getMeasuredHeight(), 0, linePaint); 
     canvas.drawLine(0, getMeasuredHeight(), getMeasuredWidth(), getMeasuredHeight(), 
         linePaint); 

     canvas.drawLine(margin, 0, margin, getMeasuredHeight(), marginPaint); 

     canvas.save(); 
     canvas.translate(margin, 0); 

     super.onDraw(canvas); 
     canvas.restore(); 
    } 
} 

И это main.xml:

<?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" > 

<EditText 
    android:id = "@+id/myEditText" 
    android:inputType = "text" 
    android:layout_width = "fill_parent" 
    android:layout_height = "wrap_content" 
    android:text = "@string/stringEditText" 
/> 

<ListView 
    android:id = "@+id/myListView" 
    android:layout_width = "fill_parent" 
    android:layout_height = "wrap_content" 
/> 

todolist_item.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<com.rasi.todolist.TodoListItemView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:padding="10dp" 
android:scrollbars="vertical" 
android:textColor="@color/notepad_text" 
android:fadingEdge="vertical" 
/> 

ответ

1

Я проверил ваш код и он работает без каких-либо исключений. Попробуйте очистить проект, а затем запустите его снова.

+0

Спасибо за тестирование. Я очищаю проект и все то же самое. – Jjreina

+2

@Jjreina Я думаю, что сейчас вы запускаете приложение, используя класс «TodoListItemView», а не «ToDoList». Проверьте конфигурацию своего приложения и задайте в качестве основного действия запуск класса 'ToDoList' (NOT' TodoListItemView'). – Luksprog

+0

Спасибо, Как я могу это увидеть? – Jjreina

0

Я получаю сообщения об этой ошибке с консоли разработчика Google Play. приложение отлично работает на моем устройстве и всех эмуляторах.

У меня уже есть 10 отчетов, общая сумма составляет 3000, поэтому я решил просто проигнорировать ее.

Смежные вопросы