Ошибка в приложении

Ответить
Blari
Сообщения: 28
Зарегистрирован: 16 июл 2013, 09:34

Ошибка в приложении

Сообщение Blari » 26 июл 2013, 16:04

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

Код: Выделить всё

07-26 11:29:37.594: E/AndroidRuntime(320): FATAL EXCEPTION: main 
07-26 11:29:37.594: E/AndroidRuntime(320): java.lang.RuntimeException: Unable to start activity ComponentInfo{by.example.prikazki/by.example.prikazki.WebViewActivity}: java.lang.NullPointerException 
07-26 11:29:37.594: E/AndroidRuntime(320):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647) 
07-26 11:29:37.594: E/AndroidRuntime(320):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 
07-26 11:29:37.594: E/AndroidRuntime(320):     at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
07-26 11:29:37.594: E/AndroidRuntime(320):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
07-26 11:29:37.594: E/AndroidRuntime(320):     at android.os.Handler.dispatchMessage(Handler.java:99) 
07-26 11:29:37.594: E/AndroidRuntime(320):     at android.os.Looper.loop(Looper.java:123) 
07-26 11:29:37.594: E/AndroidRuntime(320):     at android.app.ActivityThread.main(ActivityThread.java:3683) 
07-26 11:29:37.594: E/AndroidRuntime(320):     at java.lang.reflect.Method.invokeNative(Native Method) 
07-26 11:29:37.594: E/AndroidRuntime(320):     at java.lang.reflect.Method.invoke(Method.java:507) 
07-26 11:29:37.594: E/AndroidRuntime(320):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
07-26 11:29:37.594: E/AndroidRuntime(320):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
07-26 11:29:37.594: E/AndroidRuntime(320):     at dalvik.system.NativeStart.main(Native Method) 
07-26 11:29:37.594: E/AndroidRuntime(320): Caused by: java.lang.NullPointerException 
07-26 11:29:37.594: E/AndroidRuntime(320):     at by.example.prikazki.WebViewActivity.onCreate(WebViewActivity.java:33) 
07-26 11:29:37.594: E/AndroidRuntime(320):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
07-26 11:29:37.594: E/AndroidRuntime(320):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 
07-26 11:29:37.594: E/AndroidRuntime(320):     ... 11 more
Вот aktiviti откуда я вызываю второе

Код: Выделить всё

package by.example.prikazki; 
 
import android.os.Bundle; 
import android.app.Activity; 
import android.content.Intent; 
import android.view.Menu; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import android.widget.AdapterView.OnItemClickListener; 
 
public class AlfovitniActivity extends Activity { 
 
    String[] alfavit = { "А", "Б", "В", "Г", "Д", "Е", "Ё", "Ж" }; 
     
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_alfovitni); 
     
        //ищем список 
            ListView LvAlf = (ListView) findViewById(R.id.lvAlf); 
             
            //загружаем масив в список 
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,  
                    android.R.layout.simple_list_item_1, alfavit); 
            LvAlf.setAdapter(adapter); 
             
            //Обрабатываем нажатия на список 
            LvAlf.setOnItemClickListener(new OnItemClickListener() { 
                public void onItemClick(AdapterView<?> parent, View view, 
                    int position, long id) { 
                    //по ID определяем куда ити дальше 
                   switch ((int)id) { 
                   case 0: 
                      Intent WebViewAlf = new Intent(AlfovitniActivity.this, WebViewActivity.class); 
                      AlfovitniActivity.this.startActivity(WebViewAlf); 
                     break; 
                      
                   case 1: 
                          Intent WebViewAlf1 = new Intent(AlfovitniActivity.this, WebViewActivity.class); 
                          AlfovitniActivity.this.startActivity(WebViewAlf1); 
                         break; 
                   }}});} 
    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
        // Inflate the menu; this adds items to the action bar if it is present. 
        getMenuInflater().inflate(R.menu.alfovitni, menu); 
        return true; 
    } 
 
} 
А вот вызываемое:

Код: Выделить всё

package by.example.prikazki; 
 
import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
 
import android.os.Bundle; 
import android.app.Activity; 
import android.content.Context; 
import android.util.Log; 
import android.view.Menu; 
import android.view.Window; 
import android.view.WindowManager; 
import android.webkit.WebView; 
 
public class WebViewActivity extends Activity { 
 
    private static final String TAG = "ViewActivity"; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
         
        requestWindowFeature(Window.FEATURE_NO_TITLE); //скрываем заголовок 
         
        setContentView(R.layout.activity_web_view); 
         
        //скрываем статусбар: 
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
        WindowManager.LayoutParams.FLAG_FULLSCREEN); 
         
        Bundle bundle = getIntent().getExtras(); 
        String itemname = "n" + bundle.getString("defStrID"); //получаем строку и формируем имя ресурса 
     
        Context context = getBaseContext(); //получаем контекст 
         
        //читаем текстовый файл из рексурсов по имени 
        String text = readRawTextFile(context, getResources().getIdentifier(itemname, "raw", "by.example.prikazki")); 
         
        WebView myWebView = (WebView) findViewById(R.id.webview); 
        String summary = "<html><body>" + text + "</body></html>"; 
        myWebView.loadDataWithBaseURL(null,summary,"text/html" ,"utf-8",null);//загружаем текст в webview" 
      } 
       
      public static String readRawTextFile(Context ctx, int resId) //читаем текст из raw - аргументы контекст и идентификатор ресурса 
      { 
         InputStream inputStream = ctx.getResources().openRawResource(resId); 
      
          InputStreamReader inputreader = new InputStreamReader(inputStream); 
          BufferedReader buffreader = new BufferedReader(inputreader); 
           String line; 
           StringBuilder text = new StringBuilder(); 
      
           try { 
            while (( line = buffreader.readLine()) != null) { 
              text.append(line); 
              text.append('\n'); 
             } 
          } catch (IOException e) { 
            Log.e(TAG, 
                "read data: ошибка!" 
                    + e.getMessage(), e); 
          } 
           return text.toString(); 
      } 
      
    } 
Из первого во второе я передаю параметр, основываясь на который в WebWiev загружаю данные.

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Ошибка в приложении

Сообщение Mikhail_dev » 26 июл 2013, 16:47

Проверь что в R.layout.activity_web_view действительно находится R.id.webview

Blari
Сообщения: 28
Зарегистрирован: 16 июл 2013, 09:34

Re: Ошибка в приложении

Сообщение Blari » 26 июл 2013, 16:51

no-- писал(а):Проверь что в R.layout.activity_web_view действительно находится R.id.webview

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:scrollbarAlwaysDrawVerticalTrack="false"
    android:scrollbarStyle="insideInset" >

    <WebView
        android:id="@+id/webview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"/>

</LinearLayout>

Код: Выделить всё

public static final class id {
        public static final int action_settings=0x7f090004;
        public static final int btn_alf=0x7f090003;
        public static final int lvAlf=0x7f090000;
        public static final int textView1=0x7f090002;
        public static final int webview=0x7f090001;
Все на месте.

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Ошибка в приложении

Сообщение Foenix » 26 июл 2013, 18:13

вот сюда щелкаешь 2 раза мышью
07-26 11:29:37.594: E/AndroidRuntime(320): at by.example.prikazki.WebViewActivity.onCreate(WebViewActivity.java:33)
тебя перекинет на код в определенную строчку.
там у тебя ошибка - нулл в переменной.
Сморришь на оператор перед этой строкой, где ты эту переменную пытался инициализировать - внимательно. Там и ошибка.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Blari
Сообщения: 28
Зарегистрирован: 16 июл 2013, 09:34

Re: Ошибка в приложении

Сообщение Blari » 26 июл 2013, 18:39

Foenix писал(а):вот сюда щелкаешь 2 раза мышью
07-26 11:29:37.594: E/AndroidRuntime(320): at by.example.prikazki.WebViewActivity.onCreate(WebViewActivity.java:33)
тебя перекинет на код в определенную строчку.
там у тебя ошибка - нулл в переменной.
Сморришь на оператор перед этой строкой, где ты эту переменную пытался инициализировать - внимательно. Там и ошибка.
Действительно, голова моя дырявая, я ничего не передавал, но пытался "это" читать :)
Спасибо.

Ответить