我的一個應用程序遇到了一個非常令人沮喪的問題。在進程被終止後,R.java引發的Android NoSuchField錯誤
我有一個splashscreen活動,爲我的應用程序加載一些初始數據,然後啓動主要活動並完成自己。
一旦主要活動正在運行,我通過按回車鍵背景應用程序,然後終止我的應用程序。
當我重新啓動我的應用程序,濺射屏幕嘗試運行,但只要我嘗試訪問我的文件R.java任何字段的失敗:
例如,我馬上嘗試設置的文本像這樣一個TextView:
((TextView)findViewById(R.id.splash_tv_1)).setText(application.getLanguage().pleasewait);
這將引發以下異常:
06-29 11:18:14.661: ERROR/AndroidRuntime(21427): java.lang.NoSuchFieldError: com.pagesuite.android.reader.framework.R$id.splash_tv_1
後來,當我再次啓動它,它的罰款。
如果我使用TaskKiller工具(我知道很多用戶會天真地使用我懷疑的)殺死應用程序,或者操作系統殺死了我的進程,我會得到相同的行爲。
任何想法?
編輯:
只注意到在logcat的,只是之前的onCreate()的本次活動執行,以下記錄:
06-29 11:18:14.571: WARN/dalvikvm(21427): VFY: unable to resolve static field 1945 (splash_logo) in Lcom/pagesuite/android/reader/framework/R$id;
06-29 11:18:14.571: DEBUG/dalvikvm(21427): VFY: replacing opcode 0x60 at 0x0000
06-29 11:18:14.571: DEBUG/dalvikvm(21427): VFY: dead code 0x0002-0010 in Lcom/pagesuite/android/reader/framework/activities/PS_Splashscreen;.loadLogoImg (Lcom/pagesuite/android/reader/framework/xml/appsettings/PS_AppSettings;)V
06-29 11:18:14.571: DEBUG/dalvikvm(21427): DexOpt: couldn't find static field
06-29 11:18:14.571: WARN/dalvikvm(21427): VFY: unable to resolve static field 1946 (splash_tv_1) in Lcom/pagesuite/android/reader/framework/R$id;
06-29 11:18:14.571: DEBUG/dalvikvm(21427): VFY: replacing opcode 0x60 at 0x0000
06-29 11:18:14.571: DEBUG/dalvikvm(21427): VFY: dead code 0x0002-0039 in Lcom/pagesuite/android/reader/framework/activities/PS_Splashscreen;.setLanguage()V
06-29 11:18:14.571: DEBUG/dalvikvm(21427): DexOpt: couldn't find static field
06-29 11:18:14.571: WARN/dalvikvm(21427): VFY: unable to resolve static field 1946 (splash_tv_1) in Lcom/pagesuite/android/reader/framework/R$id;
06-29 11:18:14.571: DEBUG/dalvikvm(21427): VFY: replacing opcode 0x60 at 0x0000
06-29 11:18:14.571: DEBUG/dalvikvm(21427): VFY: dead code 0x0002-0020 in Lcom/pagesuite/android/reader/framework/activities/PS_Splashscreen;.setTextColors()V
這是三個例子,我嘗試訪問R.身份證在我的班。
有一點要注意的是,我呼籲:
setContentView(R.layout.ps_splashscreen);
,似乎跑這條線細,所以它是R.id的特別,似乎丟失。
編輯: 這裏是佈局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:orientation="vertical"
android:gravity="center">
<ImageView
android:id="@+id/splash_logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/splash_tv_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Please wait"
android:textColor="@color/white"
android:textSize="20dip" />
<TextView
android:id="@+id/splash_tv_2"
android:layout_marginTop="20dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Loading..."
android:textColor="@color/white" />
</LinearLayout>
您可以爲您的啓動畫面發佈代碼和xml佈局嗎? –