Я создаю одно приложение для Android, которое состоит из одного веб-представления. Я использую Android 1.1. Минимальный SDK является 19. Только один макет, activity_main.xml в следующем кодеfindViewById возвращает null для WebView в android studio 1.1
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
<WebView android:text="@+id/web_view" android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
Java класс MainActivity.java следующим образом:
public class MainActivity extends ActionBarActivity {
private WebView web_view;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
web_view = (WebView) findViewById(R.id.web_view);
WebSettings webSetting= web_view.getSettings();
webSetting.setJavaScriptEnabled(true);
web_view.setWebChromeClient(new WebChromeClient());
web_view.loadUrl("file:///andorid_asset/www/index.html");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, 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();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
Ошибка java.lang.NullPointerException из OnCreate функции в statement WebSettings webSetting = web_view.getSettings(), Я уже проверил переменную web_view, это значит, что инструкция findViewById (R.id.web_view) ничего не вернула. Как вы видите, веб-просмотр существует в макете xml-файла, правый файл макета вызывается в кодах (на самом деле только этот макет xml). Я действительно не знаю, что происходит. Я читаю ссылку findViewById returns null for WebView. Я также несколько раз очищаю/перестраиваю проект, перезапускаю свое устройство (Samsung Galaxy TAB S, android 4.4.2) несколько раз. Это бесполезно.
Может кто-нибудь указать, что случилось? Спасибо заранее!
Спасибо всем вашим предложениям. После того, как я перейду на «id», он работает. Этот сайт действительно полезен! –