0

今日アプリを更新したら、12 件のクラッシュ レポートを受け取りました。私が見ることができるように、すべてが私のメインアクティビティクラスに向けられています. ここにそれらのいくつかがあります:

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{rs.androidaplikacije.zastaveigradovi/rs.androidaplikacije.zastaveigradovi.MainActivity}: java.lang.ClassNotFoundException: rs.androidaplikacije.zastaveigradovi.MainActivity in loader dalvik.system.PathClassLoader[/data/app/rs.androidaplikacije.zastaveigradovi-1.apk]
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1573)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
at android.app.ActivityThread.access$1500(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3687)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: rs.androidaplikacije.zastaveigradovi.MainActivity in loader dalvik.system.PathClassLoader[/data/app/rs.androidaplikacije.zastaveigradovi-1.apk]
at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1565)
... 11 more


java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{rs.androidaplikacije.zastaveigradovi/rs.androidaplikacije.zastaveigradovi.MainActivity}: java.lang.ClassNotFoundException: rs.androidaplikacije.zastaveigradovi.MainActivity in loader dalvik.system.PathClassLoader[/data/app/rs.androidaplikacije.zastaveigradovi-1.apk]
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1664)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1766)
at android.app.ActivityThread.access$1500(ActivityThread.java:156)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:994)
at android.os.Handler.dispatchMessage(Handler.java:130)
at android.os.Looper.loop(SourceFile:351)
at android.app.ActivityThread.main(ActivityThread.java:3833)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:538)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:659)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: rs.androidaplikacije.zastaveigradovi.MainActivity in loader dalvik.system.PathClassLoader[/data/app/rs.androidaplikacije.zastaveigradovi-1.apk]
at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:271)
at java.lang.ClassLoader.loadClass(ClassLoader.java:582)
at java.lang.ClassLoader.loadClass(ClassLoader.java:542)
at android.app.Instrumentation.newActivity(Instrumentation.java:1056)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1656)
... 11 more

そしてここからが私の主な活動です。私はそれで何も変更しませんでした。

public class MainActivity extends SwarmActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        preload(this, 5259, "0d2ab20831857f730c1c362705970d1f");
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

        super.onCreate(savedInstanceState);
        setContentView(R.layout.splash);

        Thread splashTimer = new Thread(){
            public void run(){
                try {
                    sleep(2000);
                    Intent menuIntent = new Intent("rs.androidaplikacije.zastaveigradovi.MENU");
                    startActivity(menuIntent);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                finally{
                    finish();
                }
            }
        };
        splashTimer.start();
    }

    private void preload(MainActivity mainActivity, int i, String string) {
        // TODO Auto-generated method stub

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

}

私の電話ではすべて正常に動作していますが、今日は多くのクラッシュ レポートを受け取りました。誰かが私に何が問題なのか教えてもらえますか?

4

1 に答える 1

2

問題は、アプリケーションを「パッケージ化」する方法にあると思います。rs.androidaplikacije.zastaveigradovi.MainActivity例外は、クラスローダーがクラスをロードしようとしたときにクラスを見つけられないことを示しています。コードを変更していないという事実は、おそらく関係ありません。

なぜそれがあなたの電話で機能し、他の人では機能しないのかはあまり明確ではありません. しかし、次の可能性があります。

  • あなたの携帯電話で実行しているバージョンは、他の人がアプリ ストア (またはどこからでも) から取得しているバージョンと同じではありません。
  • あなたの携帯電話には他のものが搭載されており、その他のものが違いを生むのです。

(根本原因がレポートの例外よりも前にある可能性もあります。実際の Java プラットフォームでは、クラスのロードと初期化が失敗し、一部のクラスが初期化できない状態のままになる可能性があります。これにより、後で問題が発生する可能性があります。この場合、後の例外は問題の本当の原因を教えてくれません.本当の原因については、以前の例外スタックトレースに目を向ける必要があります.しかし、私はそれがここで起こっていることだとは思いません. .)

于 2013-05-12T01:12:13.500 に答える