SORU
2 HAZİRAN 2012, CUMARTESİ


Android Etkinliği ClassNotFoundException - her şeyi denedim

Sadece çerçeve bir kütüphane içine bir uygulama ve bir uygulama refactored. ama artık çalışıyorum ve öykünücüsü uygulamayı başlatmak zaman, ben aşağıdaki hatayı yığın izleme:

06-02 18:22:35.529: E/AndroidRuntime(586): FATAL EXCEPTION: main
06-02 18:22:35.529: E/AndroidRuntime(586): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.matthewrathbone.eastersays/com.matthewrathbone.eastersays.EasterSimonSaysActivity}: java.lang.ClassNotFoundException: com.matthewrathbone.eastersays.EasterSimonSaysActivity in loader dalvik.system.PathClassLoader[/data/app/com.matthewrathbone.eastersays-1.apk]
06-02 18:22:35.529: E/AndroidRuntime(586):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
06-02 18:22:35.529: E/AndroidRuntime(586):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
06-02 18:22:35.529: E/AndroidRuntime(586):  at android.app.ActivityThread.access$2300(ActivityThread.java:125)
06-02 18:22:35.529: E/AndroidRuntime(586):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
06-02 18:22:35.529: E/AndroidRuntime(586):  at android.os.Handler.dispatchMessage(Handler.java:99)
06-02 18:22:35.529: E/AndroidRuntime(586):  at android.os.Looper.loop(Looper.java:123)
06-02 18:22:35.529: E/AndroidRuntime(586):  at android.app.ActivityThread.main(ActivityThread.java:4627)
06-02 18:22:35.529: E/AndroidRuntime(586):  at java.lang.reflect.Method.invokeNative(Native Method)
06-02 18:22:35.529: E/AndroidRuntime(586):  at java.lang.reflect.Method.invoke(Method.java:521)
06-02 18:22:35.529: E/AndroidRuntime(586):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
06-02 18:22:35.529: E/AndroidRuntime(586):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
06-02 18:22:35.529: E/AndroidRuntime(586):  at dalvik.system.NativeStart.main(Native Method)
06-02 18:22:35.529: E/AndroidRuntime(586): Caused by: java.lang.ClassNotFoundException: com.matthewrathbone.eastersays.EasterSimonSaysActivity in loader dalvik.system.PathClassLoader[/data/app/com.matthewrathbone.eastersays-1.apk]
06-02 18:22:35.529: E/AndroidRuntime(586):  at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
06-02 18:22:35.529: E/AndroidRuntime(586):  at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
06-02 18:22:35.529: E/AndroidRuntime(586):  at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
06-02 18:22:35.529: E/AndroidRuntime(586):  at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
06-02 18:22:35.529: E/AndroidRuntime(586):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)
06-02 18:22:35.529: E/AndroidRuntime(586):  ... 11 more

Genellikle bu bildirim dosyası bir şekilde yanlış olduğu anlamına gelir, ama çift aklıma gelen her şeyi kontrol ettim.

İşte benim etkinlik sınıf:

package com.matthewrathbone.eastersays;

import android.os.Bundle;

import com.rathboma.simonsays.Assets.Season;
import com.rathboma.simonsays.SeasonPicker;
import com.rathboma.simonsays.SimonSaysActivity;

    public class EasterSimonSaysActivity extends SimonSaysActivity {

      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
      }

      @Override
      protected void onDestroy() {
        // TODO Auto-generated method stub
        super.onDestroy();
      }

      @Override
      public SeasonPicker getSeasonPicker() {
       return new SeasonPicker(){
        @Override
        public Season getSeason() {
          // TODO Auto-generated method stub
          return Season.EASTER;
        }
       };
      }
    }

Gördüğünüz gibi, doğru bildirimde listelenmiştir

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.matthewrathbone.eastersays"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="15" />

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

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

</manifest>

Bunu düzeltmek için nasıl hiçbir fikrim yok, ve herhangi bir yardım seviniriz. Bu özel davranış görmeden bu KADAR çok benzer soruları taradım.

Daha fazla bilgi:

  • Oluşturulan MUAYENE ve sınıf bir girişi vardır içini kontrol ettim sınıflar.dosya dex
  • Proje binası temizlik çalıştım eclipse
  • Yok tamamen yeni bir aygıt görüntü kullanarak denedim bu MUAYENE bir kopyasını zaten
  • İçine kütüphane projesi değiştirdim normal bir java, android projesi sonra tekrar değişti, hayır fark
  • Soyut SimonSaysActivity bildirim ekleme hiç fark etmez.
  • Her bağımlılık android kitaplık bir proje yapmayı denedim, ve onlar gerektiren android sürümü senkronizasyon, yardım etmedi

Bulunan çözüm (aşağıya bakınız). Sen rock, sorunları ile çalışmama yardımcı olduğunuz için teşekkürler! yorum / cevap yazan herkese:

Bu gibi görünüyor SDK araçları yükseltme tarafından kullanılmaya başlandı. Teşekkürler @Nick bu bağlantı için aşağıdaki yorum: http://iqadd.com/item/noclassdeffounderror-adt-fix

CEVAP
9 HAZİRAN 2012, CUMARTESİ


Geçirdim biraz zaman oynamak ile kendi projemi, ve ben mümkün çoğaltmak senin sorunun ve aynı özel durum yığın izlemesi zaman kafanı kullan benim ana proje, bence bu olabilir nedeni:

Tıpkı düşündüğüm gibi, sen Android ana projede Android kütüphane projeniz başvuru hakkında her şey, basit bir Eclipse yapılandırma ayarları.

Yanlış Yol:
Sağ tıklayın ana proje, seçin Android ana proje bağımlılık bir yol inşa projesi olarak Android kütüphane Projesi eklemek Properties -> Java Build Path -> Projects -> Add..., Bu çalışmıyor. Eğer Android ile ilgili gerekli tüm kaynakları ana proje tanımlanmamışsa, derleme zamanında herhangi bir hata almazsınız, ancak uygulama çalıştırdığınızda, özel durum söz konusu nitelendirdi.

Doğru Yol:
Sağ tıklayın ana proje, Properties -> Android Kütüphane bölümünde, Android kütüphane projeniz burada eklemek seçin. Referencing a library project kılavuz resmi dev bir bak. Bu sorunu düzeltmek gerekir. Ayrıca göreli yol başvuru Library Project - Development considerations belirtildiği gibi gerçek bir Android Kütüphanesi projesi, kullanmak zorunda unutmayın.

Bu yardımcı olur umarım.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DrePwn

    DrePwn

    22 Temmuz 2011
  • Pituvision

    Pituvision

    11 Mart 2006
  • Sam Kear

    Sam Kear

    14 Temmuz 2007