2011-10-02 8 views
6

저는 (다른 많은 사람들처럼) webview 튜토리얼을 따라 갔지만로드 할 페이지를 얻을 수 없습니다. 모든 것이 '웹 페이지를 사용할 수 없음'으로 표시됩니다.WebView - 웹 페이지를 사용할 수 없습니다.

나는 에뮬레이터에 인터넷 액세스 권한이 있으며, 에뮬레이터와 관련된 문제를 배제하기 위해 휴대 전화에 설치하려고 했으므로 동일한 문제가 발생합니다.

가장 큰 문제는 내 매니 페스트 파일에 INTERNET 권한을 넣지 않은 사람들입니다. 매니 페스트에있는 다른 요소의 하위 항목으로 사용하지 않으려 고 시도했습니다. 왜 내가 이것을로드 할 수 없는지 아는 사람이 있습니까?

Manifest:

<application android:icon="@drawable/icon" android:label="@string/app_name"> 
    <activity android:name=".AndroidTestActivity" 
       android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
     <uses-permission android:name="android.permission.INTERNET" /> 
    </activity>  
</application> 
</manifest> 

AndroidTestActivity

public class AndroidTestActivity extends Activity { 
    WebView webview; 
     /** Called when the activity is first created. */ 
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.main); 

      webview = (WebView) findViewById(R.id.webview); 
      webview.getSettings().setJavaScriptEnabled(true); 

      webview.loadUrl("http://www.google.com/m"); 

      Intent intent = getIntent(); 
      // To get the action of the intent use 
      System.out.println(intent.getAction()); 
      // We current open a hard-coded URL 
      try { 
       webview.setWebViewClient(new AndroidTestClient()); 

      } catch (Exception e) { 
       e.printStackTrace(); 
      } 

     } 

     @Override 
     public boolean onKeyDown(int keyCode, KeyEvent event) { 
      if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) { 
       webview.goBack(); 
       return true; 
      } 
      return super.onKeyDown(keyCode, event); 
     } 

     private class AndroidTestClient extends WebViewClient { 
      @Override 
      public boolean shouldOverrideUrlLoading(WebView view, String url) { 
       view.loadUrl(url); 
       return true; 
      } 
     } 
} 

감사 :

여기 내 코드입니다!

답변

21

인터넷 사용 권한은 "manifest"의 직계 하위 항목이어야하며 "application"에 속하지 않아야합니다.

<manifest 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.mypackage.name" 
    android:installLocation="auto" 
    android:versionCode="3210" android:versionName="1.1.0"> 

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

    <uses-sdk android:minSdkVersion="6" android:targetSdkVersion="10"/> 

    <application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true"> 

    <!-- activities go here --> 

    </application> 
</manifest> 

희망이 그게이었다 -serkan

+0

네 도움이됩니다. 나는 모든 곳에 퍼팅을 시도했음을 확신한다.하지만 거기에 : P 고마워! – Saggio

+0

이 문제에 직면 할 수있는 다른 사람들을 위해 : 나는이 같은 문제가 있었지만 한 대의 컴퓨터에서 구축 한 프로젝트에서 다른 컴퓨터로 옮겼습니다. 어떤 이유로 AndroidManifest.xml을 복사하고 전체 프로젝트가 제대로 실행되었지만 webview에서 웹 컨텐트를로드하지는 않습니다. 나는 나의 용도 - 파마가 정확한 장소에 있었지만 내가 재건하고 재설치 했음에도 불구하고 그 질문에서 언급 된 것과 같은 오류를 받았다. 마지막으로 xml을 변경하여 파일을 다시 저장하고 다시 빌드 할 수있었습니다. 그런 다음 효과가있었습니다. 꽤 짜증나. – raddevus

관련 문제