Android Studioでアプリ開発をしている初心者です。
ネットで勉強しながら開発しているのですが、以下のサイトを参考にサンプルを作成したところエミュレーターでネットに繋がりませんでした。
【参考にしたサンプルコード】
https://akira-watson.com/android/webview.html
エミュレーターのブラウザ → 繋がらない
エミュレーターのWebView → 繋がらない
エラーメッセージ
ERR_NAME_NOT_RESOLVED
さらに他のサイトで調べて、DNSサーバを8.8.8.8にすると解決すると書いてあったので、試してみると
エミュレーターのブラウザ → 繋がる
エミュレーターのWebView → 繋がらない
エラーメッセージ
ERR_ACCESS_DENIED
上記の通り、エミュレーターのブラウザではネットに接続できるようになり、エラーメッセージが変わりました。
WebViewでの接続ができるように調べていたのですが、いまだに解決に至らず、こちらに質問させて頂きました。
ぜひ、お力をお貸しください。
MainActivity.java
package
1import androidx.appcompat.app.AppCompatActivity; 2import android.os.Bundle; 3import android.content.Intent; 4import android.net.Uri; 5import android.view.KeyEvent; 6import android.view.View; 7import android.view.WindowManager; 8import android.webkit.WebView; 9import android.widget.Button; 10public class MainActivity extends AppCompatActivity { 11 private WebView webView; 12 private String accessUrl = "https://akira-watson.com/"; 13 @Override 14 protected void onCreate(Bundle savedInstanceState) { 15 super.onCreate(savedInstanceState); 16 setContentView(R.layout.activity_main); 17 Button button1 = findViewById(R.id.button_1); 18 Button button2 = findViewById(R.id.button_2); 19 // WebView 20 button1.setOnClickListener(new View.OnClickListener() { 21 @Override 22 public void onClick(View v) { 23 setContentView(R.layout.web); 24 webView = findViewById(R.id.web_view); 25 // JavaScriptを有効化 26 webView.getSettings().setJavaScriptEnabled(true); 27 // Web Storage を有効化 28 webView.getSettings().setDomStorageEnabled(true); 29 // Hardware Acceleration ON 30 getWindow().setFlags( 31 WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED, 32 WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED); 33 webView.loadUrl(accessUrl); 34 } 35 }); 36 // Browser 37 button2.setOnClickListener(new View.OnClickListener() { 38 @Override 39 public void onClick(View v) { 40 Uri uri = Uri.parse(accessUrl); 41 Intent intent = new Intent(Intent.ACTION_VIEW,uri); 42 startActivity(intent); 43 } 44 }); 45 } 46 @Override 47 public boolean onKeyDown(int keyCode, KeyEvent event) { 48 // 戻るページがある場合 49 if (event.getAction() == KeyEvent.ACTION_DOWN 50 && keyCode == KeyEvent.KEYCODE_BACK){ 51 if(webView.canGoBack()){ 52 webView.goBack(); 53 } 54 else{ 55 finish(); 56 } 57 return true; 58 } 59 return super.onKeyDown(keyCode, event); 60 } 61}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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:orientation="vertical" android:gravity="center" android:background="#dfe" tools:context=".MainActivity"> <Button android:id="@+id/button_1" android:text="@string/button1" android:layout_margin="20dp" android:layout_width="match_parent" android:layout_height="wrap_content"/> <Button android:id="@+id/button_2" android:text="@string/button2" android:layout_margin="20dp" android:layout_width="match_parent" android:layout_height="wrap_content"/> </LinearLayout>
AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.testapp002"> <uses-permission android:name="android.permission.INTERNET" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme" android:usesCleartextTraffic="true" > <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
web.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <WebView android:id="@+id/web_view" android:layout_width="match_parent" android:layout_height="match_parent"> </WebView> </LinearLayout>
strings.xml
<resources> <string name="app_name">YourAppName</string> <string name="button1">WebView</string> <string name="button2">Browser</string> </resources>
回答2件
あなたの回答
tips
プレビュー