web-dev-qa-db-ja.com

Visual Studio 2015-Xamarin-Android-.csファイルで何かを実行しようとすると「resource.idにxxxの定義が含まれていません」」

Visual Studio 2015を使用して追加のアクティビティ.csおよびレイアウトaxmlを追加します。

私はXamarinを初めて使用し、Android開発ですが、数年の間、VBそして今ではC#を使用して開発者でした。 Android 4.2私が進むにつれてより複雑になります。プロジェクトに追加のGpsAction.csおよび対応するGps.axmlレイアウトを追加したいという単純な問題。これを実現する適切な組み合わせ構文。main.axmlでmainActivityを使用します。VS2015では、新しいものを追加するのは非常に簡単ですが、「resource.idには定義が含まれていません」を取得し続けます。

namespace AddCam
{
[Activity(Label = "GpsActivity")]
public class GpsActivity : Activity
{
    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);
        SetContentView(Resource.Layout.GpsLayout);

        string c = FindViewById<TextView>(**Resource.Id.textView1**).Text;
        // Create your application here
    }
}
13

まだこの問題に直面している人々のために、レイアウトファイルのデフォルトのビルドアクションTransformFileに設定されます。レイアウトを選択し、レイアウトプロパティに移動し、プロパティペインでビルドアクションとしてAndroidResourceを選択します。プロジェクトをクリーンビルドすると、動作するはずです。

4
Ram Iyer

テキストフィールド「id」を「@ + id/imageView1」から「1」に変更し、保存、再構築、および「@ + id/imageView1」に戻し、修正しました。追加したいのですが、この問題はすべて

  1. 新しいアクティビティとレイアウトを追加します。
  2. 私が持っていた別のアプリの既存のコードを使用します。
  3. 元のアプリから新しいアクティビティとレイアウトにコードをコピーして貼り付けます。

かなり一般的なものですが、実際の問題は常に、新しいアクティビティとレイアウトをメインアクティビティに追加することであるように思われました。それは非常に複雑になり、Xamarinの問題を突き止める論理的な方法(私には知られていません)があります。 Xamarinは10年前(筆者が最後に書いたモバイルアプリ)に比べて誤解しないでください。キーワード "this"が追加されたアクティビティでエラーリングになる理由がわからない場合は、コーディングが上手です。 cs

7

Android.Resource.Idのような名前空間を追加するだけです-それは私にとっては解決です

4
Serhii Horun

私にとってうまくいったこと(Visual Studio 2017、古いXamarinプロジェクトを開く):

  1. Objおよびbinフォルダーを削除して、ビルドします。
  2. エラーの場合は、Visual Studioを再起動します(痛みを知っています)。
  3. 再構築

これで、リソースが表示されます(もちろん、正しく定義した場合)。

3
Exel Gamboa

アプリのaxmlにfor _Android:id="@+id/button1"_の設定値を追加してから、プロジェクトを再構築して再試行してください。 thisButton button = (Button)FindViewById(Resource.Id.button1);のように。

1
PL_Pathum

Axmlが正しい形式であることを確認し、動作するソリューションを再構築します。同じ問題が引き続き発生する場合は、axmlを削除して再度追加し、ソリューションをビルドします。

0
Saravanan

私の問題は、Xamarin Live Playerを使用してXamarin Androidプロジェクト(ネイティブ))をデバッグし、USBケーブルを使用して接続し、デバッグ用にデバイスを選択していたことでした。

0
mohas

私はこの問題が非常に古いことを理解していますが、Visual Studio 2019でも同様の問題に遭遇し、解決策を見つけました。

私にとっては、レイアウトに要素を追加してからコードを追加しようとすると、問題が発生します。この問題は、プロジェクトのビルド方法に関連しているようです。

コードを追加する前に、レイアウトに要素を追加してからプロジェクトをビルドしますどうやら、Resource.Idはビルドされるまで追加のメンバーで更新されず、Resource.Idが認識する前にコード内の新しいメンバーを参照しようとすると、プロジェクトのビルドが妨げられます。

0
Kyle Marino

Maniaczが言ったように、VS 2019では、リソースの下のレイアウトフォルダのレイアウトにXMLをaxml拡張に変更する必要がありました

レイアウトファイルにこれらの名前空間がないか確認してください-

xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
xmlns:tools="http://schemas.Android.com/tools"
0
Rupam Das

Visual Studio 2019では、プロジェクトに新しいAndroid Layoutを追加すると、.xmlファイルとして追加されます。Resources/ layoutフォルダーには、拡張子.axml(。 xml)と私のために拡張子.xmlを変更-> .axmlが働いた。

0
maniacz

私が見つけた最良の解決策は、ソリューションを構築することです。ビルドメニューからソリューションのビルドを選択します(または Ctrl+Shift+B)。このアクションにより問題が解決します。

0
Slackgate

Main.axmlページをクリアしてリセットすると、動作します。

0
Arun Prasad E S