2013-06-27 66 views
-1

我可以在Eclipse中無任何問題地構建我的Android項目,直到我將包重命名爲我的活動。Android R.java文件存在,但在Eclipse中構建時存在問題

我從

com.example.MainActivity 

移動的活動文件

com.example.activity.MainActivity 

我接着更新AndroidManifest.xml文件,以反映該活動的適當的類名。這就是我的.classpath的樣子

<?xml version="1.0" encoding="UTF-8"?> 
<classpath> 
    <classpathentry kind="src" path="gen"/> 
    <classpathentry kind="src" path="src"/> 
    <classpathentry kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/> 
    <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/> 
    <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/> 
    <classpathentry kind="output" path="bin/classes"/> 
</classpath> 

每當我嘗試建立我的項目,它說

R cannot be resolved to a variable 

有趣的是,R.java確實存在於gen文件夾中存在,它總是會變得之後產生我執行clean。這只是在我更改包名後纔開始發生。我查看了一些開源應用程序,它們將Activities存儲在一個單獨的文件夾中,並且它們都導入了com.example.R。

因此,如果我決定將我的活動課程放入com.example.activity而不是com.example,那麼我是否必須每次都手動導入com.example.R

+0

無論你似乎使用它,現在你需要導入[R – Nezam

回答

1

使用Eclipse Refactor實用程序重命名它。

右鍵單擊包名 - >選擇重構 - >重命名。

重命名包名稱。 Eclipse將自動更新這個包的所有引用。

希望它可以幫助你。

+0

我想通了什麼問題了。儘管謝謝你的建議! –

1
if I decide to put my Activity classes in "com.example.activity" instead of "com.example", do I have to manually import com.example.R everytime? 

[R ....沒有的手動導入...

可能的解決方法: -

  • 檢查您的佈局是有像你這樣使用 自定義按鈕,在出現的任何問題com.example.CustomizeButton並在您的 佈局中定義,因爲包已被鎖定,請確保在.xml中的標識符正確 。
  • 另請檢查問題部分,你得到一些想法...窗口 - >顯示 查看 - >問題..
  • 檢查清單檔案中的舊基準以及
  • 清理並生成項目(不用說了...:P )
  • 重新啓動Eclipse作爲最後的手段b'coz它迫使工作區 構建再次
+0

我想如果你的佈局有問題,R.java甚至不會生成。我提到R.java確實存在,我只是在每次以前沒有將它導入到我的Activity類中。所以我意識到發生了這種情況,因爲現在兩個類的包名是不同的,因爲如果您希望我將該類發佈爲您接受的答案,那麼我將其移動到活動類 –

0

呸!我的大腦一定是被炸的,不敢相信我錯過了這個。所以是的,我必須手動導入R.java,因爲它與我的活動所在的包不同,以前我不必這樣做,因爲R.java和MainActivity.java都在com.example之下。現在R.Java是在

com.example 

而MainActivity.java是

com.example.activity 
+0

? – Nezam

相關問題