SORU
17 Mart 2012, CUMARTESİ


Benim uygulama çalıştırdığımda istisna Tutulması

Neredeyse 2 aydır bu sorunu şimdi yaşıyorum ve çözemedim. Sorun şu uygulama çalışıyor ve (yeniden) Tutulması başvurumu çalıştırırsanız, bir hata iletisi uygulamam çöktü belirten alıyorum ki 'ne yazık ki, durdu'.. Ayrıca ben benim PC/Eclipse kaçmak, bir süreliğine kaçmam sonra olur bence oluştuğunu fark ettim.

Sadece app 3 etkinliğe aktif ise (BaseDiagramActivity) oluşur ve tekrar uygulamayı Eclipse İ çalıştırın. Temelde 3 faaliyetleri dışında tüm uygulama elimden çıkardım ve hala devam ediyor.

Ve bu soruna bir çözüm aradı aradım ama benim için geçerli olan herhangi iyi bir cevap ya da bir iş bulamıyorum.

Benim tablet (4.0.3) ve telefon (4.0.2, 4.0.1 güncellemeden önce oluyordu) bu koşuyorum olarak donanım veya android sürümü bir sorun gibi görünmüyor. Tabii Dondurma Sandviç bir hata.

Eğer daha fazla bilgi gerekiyorsa bana bildirin.

İstisna (=Tag AndroidRuntime)

FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to instantiate application android.app.Application: java.lang.NullPointerException
   at android.app.LoadedApk.makeApplication(LoadedApk.java:482)
   at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3938)
   at android.app.ActivityThread.access$1300(ActivityThread.java:123)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1185)
   at android.os.Handler.dispatchMessage(Handler.java:99)
   at android.os.Looper.loop(Looper.java:137)
   at android.app.ActivityThread.main(ActivityThread.java:4424)
   at java.lang.reflect.Method.invokeNative(Native Method)
   at java.lang.reflect.Method.invoke(Method.java:511)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
   at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
   at android.app.LoadedApk.initializeJavaContextClassLoader(LoadedApk.java:362)
   at android.app.LoadedApk.getClassLoader(LoadedApk.java:305)
   at android.app.LoadedApk.makeApplication(LoadedApk.java:474)
   ... 11 more

Android Kod

LoadedApk.initializeJavaContextClassLoader() - Line 362 suçlu gibi görünüyor

Aşağıda İlgili Dosyalar:

AndroidManifest.xml

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

    <uses-sdk android:minSdkVersion="14" />

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

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="LoadDiagramActivity" android:label="Load Diagram"></activity>
        <activity android:name="BaseDiagramActivity" android:label="Base Diagram"></activity>
    </application>

</manifest>

HomeActivity.java

public class HomeActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.home);

        Button diagramButton = (Button)findViewById(R.id.diagram);
        diagramButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                startActivity(new Intent(HomeActivity.this, LoadDiagramActivity.class));
            }
        });
    }
}

LoadDiagramActivity.java

public class LoadDiagramActivity extends Activity {

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

        ActionBar actionBar = getActionBar();
        actionBar.setDisplayHomeAsUpEnabled(true);
    }

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

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                finish();
                return true;
            case R.id.add_new_diagram:
                startActivity(new Intent(this, BaseDiagramActivity.class));
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }
}

BaseDiagramActivity.java

aslında bunun ne önemi yok, istisna olarak oluşur 'üçüncü' etkinliği (*14.* Ekle butonu başladı.

public class BaseDiagramActivity extends Activity {
}

home.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" >

    <Button
        android:id="@ id/diagram"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Diagram" />

</LinearLayout>

Ek bilgi

Basit bir soru sormak için aşağı projemi soyulduğunda, paketin ad içine herşeyi değiştirdim. 5 ad var, gerçek bir proje, elimden aşağı sürümü, ancak sadece "değil," (görebildiğim kadarıyla) ile test ederken hala mevcuttu.

İşte paketler:

  • [package] genel mantığı
  • [package].activities faaliyetleri ve temel faaliyetleri
  • [package].database veritabanı ile etkileşim
  • [package].models - kaydetme/Yükleme veri modelleri
  • [package].renderables nesneleri bir tuvale çizilmiş

Bir eklemeye çalıştım `android:sharedUserİd' bildirim için öznitelik ve hiçbir şey iki kez geldi denedim. Başlangıçta bu soruştururken paylaşılan kullanıcı kimliğini sadece farklı projeler, farklı paketler için de geçerli olduğunu sonucuna vardım.

Ayrıca her şeyi soydum zaman veritabanı ile herhangi bir etkileşim olduğunu sanmıyorum. 3. etkinlik herhangi bir aktivite olabilir aslında, HomeActivity bile, bu teoriye karşı bir şey oldu.

Yararlı bağlantılar

Güncelleme 1/11/2012

Son birkaç gün geçirdim haliyle bu proje, oluşturulan yeni projede Eclipse Juno (üzerinde Helios önce) ve transfer her şeyi elle böylece Eclipse ve Android araçları ele neredeyse bütün bu Apaçık bir etkileşim ama hala görülebilmektedir. Eğer bir şey bulursam önümüzdeki birkaç gün içinde bir daha bak ve güncellenir.

BİLGİNİZE yeni projem şunları hedefliyor:

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

Ayrıca root paketi içindeki tüm faaliyetleri yeni proje yapısı (yani. [paket], [paket].faaliyetleri). Ayrıca (yeni?) kullanıyorum sözdizimi ana faaliyet göstermek için:

<meta-data
    android:name="android.support.PARENT_ACTIVITY"
    android:value="[my package].LoadDiagramActivity" />

Ayrıca hala şu anda güncellenmiş benim Galaxy Nexus Jellybean 4.1.2 çalıştıran görülür.

CEVAP
6 NİSAN 2012, Cuma


Manifest dosyasında bir şey daha eklemeyi deneyin zaten.. denedim eminim

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="[my package]" 
    android:versionCode="1" 
    android:versionName="1.0"
    android:sharedUserId="com.mj.app" > 

Projenizde birden çok PAKET com.package.p1 , com.package.p2 ,com.package.p3 gibi.. yok gibi görünüyor

Ve başlarken p1 ve sonra p2 - p3geçiyor... ve o zaman tekrar çalıştırmayı deneyin..Android hata veriyor.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jonnyriddlin1

    Jonnyriddlin

    4 Ocak 2007
  • Mark Brown

    Mark Brown

    9 HAZİRAN 2010
  • Official Clouds

    Official Clo

    1 HAZİRAN 2011