Unable to start activity Resources$NotFoundException

Habe ich eine app veröffentlicht und bei google play für mehrere Monate.

Heute erhielt ich eine Fehlermeldung von einem Benutzer mit einer Ressource, die nicht gefunden Ausnahme. Ich dachte ich kann vergessen haben, einige drawable. Aus dem Fehler hab ich die Objekt-ID (ich habe ID 0x7f030003 aus dem Fehler) und sah es in R.java um zu bestimmen, welcher Gegenstand fehlte.

Zu meiner überraschung fand ich, dass die IDis aus meiner Haupttätigkeit, also ich bin sicher, ich habe nicht vergessen diese!

Meine app startet mit Haupt-und alle anderen Aktivitäten/Fragmente genannt werden von ihm. Beim gehen zurück beende ich gerade geöffnet Aktivitäten und gehen Sie zurück zu Main. Es gibt also keine expliziten Aufruf von Main aus meinem code, so bin ich verloren, über das, was dies verursachen.
Kann ich nicht reproduzieren und habe nur den Bericht aus der user.

Habe ich einige Fehler suchen, die für die Ressource? was kann passiert sein? hier ist die Fehlermeldung, die ich erhalten über die Konsole

java.lang.RuntimeException: Unable to start activity
> ComponentInfo{com.myapp/com.myapp.MainActivity}:
> android.content.res.Resources$NotFoundException: Resource ID
> #0x7f030003 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
> at
> android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
> at android.app.ActivityThread.access$2300(ActivityThread.java:125) at
> android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
> at android.os.Handler.dispatchMessage(Handler.java:99) at
> android.os.Looper.loop(Looper.java:123) at
> android.app.ActivityThread.main(ActivityThread.java:4627) at
> java.lang.reflect.Method.invokeNative(Native Method) at
> java.lang.reflect.Method.invoke(Method.java:521) at
> com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
> at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) at
> dalvik.system.NativeStart.main(Native Method) Caused by:
> android.content.res.Resources$NotFoundException: Resource ID
> #0x7f030003 at android.content.res.Resources.getValue(Resources.java:892) at
> android.content.res.Resources.loadXmlResourceParser(Resources.java:1869)
> at android.content.res.Resources.getLayout(Resources.java:731) at
> android.view.LayoutInflater.inflate(LayoutInflater.java:318) at
> android.view.LayoutInflater.inflate(LayoutInflater.java:276) at
> com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:198)
> at android.app.Activity.setContentView(Activity.java:1647) at
> com.myapp.MainActivity.onCreate(MainActivity.java:48) at
> android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
> at
> android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
> ... 11 more

Dies ist mein main oncreate().

Grundsätzlich habe ich ein layout, das ich als splash-screen. Der timer löst einen anderen thread kann ich laden grundlegenden Sachen, während ich die Aktualisierung eines status bar im splash-screen.
sobald Sie fertig sind die Spritzen gesetzt ist Weg und das Hauptmenü sichtbar ist.
Wenn MyApp ist zerstört durch das OS meine Boolean-variable "inicializado" null ist, und dann hab ich auf neu laden meine Sachen.Das ist, warum ich es verwenden, um zu zeigen oder nicht zu den splash -

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        splashProgress = (ProgressBar) findViewById(R.id.mainSplash_pb_progressBar);
        splashDescProgress = (TextView) findViewById(R.id.mainSplash_tv_descProgreso);

        PACKAGE_NAME = MyApp.getContext().getPackageName();
        media_btnClick = MediaPlayer.create(this, R.raw.btn_click);

        if (savedInstanceState == null) {
            TextView mi_textView = (TextView) findViewById(R.id.main_tv_Version);
            PackageInfo mi_packageInfo = null;
            try {
                mi_packageInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
                mi_textView.setText("v" + mi_packageInfo.versionName);
                PACKAGE_CODE = mi_packageInfo.versionCode;
            } catch (NameNotFoundException e) {
                //TODO Auto-generated catch block
            }
            savedInstanceStateNull = true;

        } else {
            savedInstanceStateNull = false;
        }
        if (!MyApp.Inicializado) {
            cargarDatosSplash();

            Timer timer = new Timer();
            timer.schedule(new LanzarInicio(), 10);
        } else {
            LinearLayout layoutSplash = (LinearLayout) findViewById(R.id.main_splash);
            LinearLayout layoutMain = (LinearLayout) findViewById(R.id.main_menu);
            layoutSplash.setVisibility(View.GONE);
            layoutMain.setVisibility(View.VISIBLE);
        }
    }

class LanzarInicio extends TimerTask {
    public void run() {
        MainActivity.this.runOnUiThread(new Runnable() {
            public void run() {
                new cargarObjetosTask().execute();
            }
        });

    }
}
  • Posten Sie Ihre Activity code, speziell onCreate() - Methode, 48 Linie verursacht problem.
  • Hallo, ich habe aktualisiert mein Antwort mit der onCreate-code. Ich habe keine Zeile 48 whitin die Methode. Diese Zeilennummer ist von Anfang an? Von Anfang Zeile 48 ist setContentView(R. layout.activity_main);
  • Wissen Sie, das Gerät Ihrer Benutzer?
InformationsquelleAutor Javier | 2013-09-18
Schreibe einen Kommentar