Nano Hash - криптовалюты, майнинг, программирование

Застрял в учебнике по WebView - проблема с R.id?

Доброе утро - надеюсь, у всех были приятные выходные.

У меня возникли проблемы после изучения руководства на странице https://developer.chrome.com/multidevice/webview/gettingstarted

Все идет хорошо, пока я не дойду до шага, касающегося редактирования класса MainActivity. Это шаг 3 в разделе «Добавить WebView»: https://developer.chrome.com/multidevice/webview/gettingstarted#add_the_webview

Вот содержание моего AndroidManifest.xml:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.nathan.myapplication" >

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MyActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

    <uses-permission android:name="android.permission.INTERNET" />

</manifest>

А вот и мой MyActivity.java:

package com.example.nathan.myapplication;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.WebView;

public class MyActivity extends Activity {
private WebView mWebView; // Added by ND Guthrie 8.15.2014:2229

@Override

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my);
    mWebView = (WebView)findViewById(R.id.activity_my_webview);  // Added by ND Guthrie 8.15.2014:2231
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.my, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    if (id == R.id.action_settings) {
        return true;
    }
    return super.onOptionsItemSelected(item);
}
}

Я пробовал предложения, основанные на этих ссылках здесь, в stackoverflow:

Ошибка при импорте класса R в android

Android Studio не генерирует R.java для моего импорта проект

Не удается разрешить R.id

В случае ошибки с импортом класса R я попытался добавить строку

import com.TestApp.HelloWebView.R;

Но безуспешно, так как TestApp не распознается. Это понятно, так как я не назвал здесь ничего «TestApp» в своем приложении, но я не понимаю, как это исправить.

Я также попытался удалить созданную папку и очистить и перестроить проект. Однако я получаю те же результаты.

Я знаю, что это, вероятно, глупая мелочь, но я уже несколько дней ищу в Google и stackoverflow, и мне кажется, что я чего-то не вижу.

Любые идеи? Пожалуйста, порекомендуйте.

Спасибо вам большое за ваше время!

С уважением, Натан

18.08.2014

  • import com.TestApp.HelloWebView.R; должен быть импортным com.example.nathan.myapplication.R". В любом случае, в этом нет необходимости, если у вас есть активность в пакете com.example.nathan.myapplication. Но в любом из ваших файлов ресурсов могут быть ошибки, и в этом случае R.java не будет сгенерирован. 18.08.2014
  • также опубликуйте activity_my.xml, чтобы проверить, существует ли веб-просмотр с идентификатором activity_my_webview 18.08.2014
  • проверьте, есть ли у вас красный крест внутри ваших ресурсов, возможно, вам нужно исправить это, чтобы ваш проект заработал. 18.08.2014

Ответы:


1

Это работает так, что ваши XML-файлы компилируются в ресурсы в фоновом режиме Eclipse, и создается R.java, который позволяет вашему проекту ссылаться на эти ресурсы. Если вы поместили «R.id.blah» или «R.layout.blah» или что-то еще в Eclipse, и он не распознается, это означает одно из следующих:

  1. В ваших файлах XML нет соответствующих элементов. R.java создается, но не содержит «R.id.blah» или того, что вы используете, потому что ваши XML-файлы не содержат элементов, которые могли бы компилироваться с этими идентификаторами.
  2. R.java вообще нельзя было скомпилировать. Так будет, если в вашем проекте есть ошибки. Лучше всего убедиться, что ошибок нет (нигде нет красных крестиков), а затем посмотреть, появляется ли R.java. После того, как вы это сделаете, вы сможете узнать, какие идентификаторы генерируются, и это должно указать вам, что отсутствует или несовместимо в ваших файлах XML.
18.08.2014
  • Привет, ребята! Большое спасибо за ваши быстрые ответы! Эти ответы действительно приближают решение. Я попытался импортировать com.example.nathan.myapplication.R; и хотя кажется, что это помогает, он неактивен и, насколько я понимаю, не используется. У меня есть ошибка с красной полосой, в которой говорится, что «не удается разрешить символ activity_my_webview», поэтому я полагаю, что это проблема со ссылкой. У меня есть сгенерированный файл R.java. Он находится в папке / source. Я могу опубликовать содержание, если это будет полезно. Activity_my.xml НЕ содержит ссылки на activity_my_webview. Еще раз спасибо. 18.08.2014
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..