簡體   English   中英

無法解析符號R.

[英]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 ,並重新安裝了最新版本。

上面鏈接的接受答案有以下步驟(我在這里重現):

  1. 從安裝程序卸載。 (通過windows控制面板)
  2. 刪除Android Studio文件

    轉到您的用戶文件夾(%USERPROFILE%),並刪除.android,.AndroidStudio以及最終版本的任何類似目錄,即.AndroidStudio1.2,以及.gradle和.m2(如果存在)。 然后轉到%APPDATA%並刪除JetBrains目錄。 最后,轉到C:\\ Program Files並刪除Android目錄。

  3. 刪除SDK

    要刪除SDK的任何剩余部分,請轉到%LOCALAPPDATA%並刪除Android目錄。

  4. 刪除Android Studio項目

    Android Studio會在您可能要刪除的文件夾%USERPROFILE%\\ AndroidStudioProjects中創建項目。

我跳過了4),然后卸載了一個單獨的Java 7安裝,好的措施。

接下來,我下載了最新的Android Studio(3.3.2)並安裝了它。

也許有點激烈,但現在一切正常,“無法解決符號R”錯誤消失了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM