[英]Cannot Resolve symbol R
我正在Android Studio上添加一個簡短的Toast消息。(我正在制作Android Wear應用程序)
我不知道為什么這個代碼在'符號R'上有錯誤。 它說“無法解析符號R.”
import android.app.Activity;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.wearable.view.WatchViewStub;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class MyActivity extends Activity {
private TextView mTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
//getnextpage
Button getnextpage;
getnextpage = (Button) findViewById(R.id.getnextpage);
getnextpage.setOnClickListener(new OnclickListener() {
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "Here is 2nd Page", Toast.LENGTH_LONG).show();
}
});
final WatchViewStub stub = (WatchViewStub) findViewById(R.id.watch_view_stub);
stub.setOnLayoutInflatedListener(new WatchViewStub.OnLayoutInflatedListener() {
@Override
public void onLayoutInflated(WatchViewStub stub) {
mTextView = (TextView) stub.findViewById(R.id.text);
}
});
}
}
下面提到了一些程序:
1)嘗試Build
- > Clean/Rebuild
項目。
2)手動輸入import <package name>.R
,如果在導入R中丟失。
3)完成其相應XML
文件的所有資源。
我希望其中任何一個都對您有所幫助,因為沒有特別的方法來解決這個問題。
如果在您的情況下導入R
缺失,則必須手動導入R
import <packagename>.R;
將<packagename>
替換為您自己的包名稱。
在您的代碼中, R
未導入,因此您的Android Studio
可能會在您的包中找到資源時感到困惑。
我知道其他人已經說過大部分這些觀點,但這應該是一個總結,並希望提出一些新的解決方案!
如果只有字母'R'為紅色,則表示您的R文件有問題(在build\\generated\\source\\r\\debug\\com\\domain.projectname\\R
)。 不要四處編輯你的R文件 - 因為每次清理和構建/重建項目時,R文件都會重新生成(它會完全重置而不會失敗)。 有幾種可能的解決方案:
1)你可能已經編寫了import android.R;
在您的活動頂部。 您需要導入不同的R文件。 這意味着如果您的域名為“example”且項目名稱為“project”,則導入應為: import com.example.project.R
2)R是構建文件。 這意味着它會在您清理時消失,並在您構建時重新生成,如上所述。 確保在清理完項目后構建或重建項目。
3)也許您的gradle項目同步尚未完成。 等到所有進程都運行完畢!
4)您的R文件也可能已損壞或丟失。 如果上述方法不起作用,您可以得出這個結論。 它有一個非常簡單的修復,因為正如我之前解釋的那樣,當你重建一個新的R文件時會生成。 因此,只需導航到Build
並單擊Clean project
,然后在完成后單擊Rebuild project
。 使用新的R文件,您的問題應該消失。
PS:如果沒有提供所有相關代碼,幾乎不可能給出准確答案
最終為我做的訣竅是看Android Studio中的“事件日志”選項卡,我看到:
檢測到框架:在項目Configure中檢測到Android框架
單擊“配置”將AndroidManifest.xml設置為項目的配置文件(將其標識為“android”),然后只有所有“R”錯誤消失,我才能編譯並運行。
在此之前 - 我嘗試過的所有操作,例如:“干凈”,“重建”和重新啟動Android工作室 - 都無法正常工作。
似乎Gradle花費了太長的時間來執行您的計算機。 等待Gradle完成項目的構建。
我通過編輯build.gradle
文件解決了這個問題。
compiledSdkVersion
必須與您的appcompat
依賴項保持一致。
我的compileSdkVersion
是22,所以我編輯了我的appcompat
依賴項
compile 'com.android.support:appcompat-v7:22.2.1'
所以,我希望這可以成為一個解決方案。
如果您的類缺少可能必須導入的R.Class
鏈接, R.Class
發生這種情況。 所以,在開始上課之前,你可以簡單地開始
import Your_Package_name.R;
例如
import com.example.myproject.R;
當Clean/Rebuild
項目不是解決方案時,您可以手動編寫此文件。
用例:
import javax.crypto.spec.SecretKeySpec;
import javax.net.ssl.HttpsURLConnection;
import com.example.jsonwebservice.R;
這對我有用。
如果以上任何一個答案都不起作用,以下問題解決了我的問題...
這是我試過的:
多次“清理”,“重建”和“無效緩存重啟”
嘗試手動添加[我的包] .R,
這沒用,所以我卸載了Android Studio ,並重新安裝了最新版本。
上面鏈接的接受答案有以下步驟(我在這里重現):
刪除Android Studio文件
轉到您的用戶文件夾(%USERPROFILE%),並刪除.android,.AndroidStudio以及最終版本的任何類似目錄,即.AndroidStudio1.2,以及.gradle和.m2(如果存在)。 然后轉到%APPDATA%並刪除JetBrains目錄。 最后,轉到C:\\ Program Files並刪除Android目錄。
刪除SDK
要刪除SDK的任何剩余部分,請轉到%LOCALAPPDATA%並刪除Android目錄。
刪除Android Studio項目
Android Studio會在您可能要刪除的文件夾%USERPROFILE%\\ AndroidStudioProjects中創建項目。
我跳過了4),然后卸載了一個單獨的Java 7安裝,好的措施。
接下來,我下載了最新的Android Studio(3.3.2)並安裝了它。
也許有點激烈,但現在一切正常,“無法解決符號R”錯誤消失了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.