Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
错误:java.lang.RuntimeException:无法实例化活动_Java_Android - Fatal编程技术网

错误:java.lang.RuntimeException:无法实例化活动

错误:java.lang.RuntimeException:无法实例化活动,java,android,Java,Android,我的android应用程序中有imageview,当我按下“图像视图”按钮时,我正在使用“图像视图”作为按钮。它的图像应该更改。现在我收到错误,请查找我使用的以下代码 package com.example.tesfragement; import com.maintab.CompareNow; import com.maintab.Login; import com.maintab.Search; import android.os.Bundle; import android.app.Ac

我的android应用程序中有imageview,当我按下“图像视图”按钮时,我正在使用“图像视图”作为按钮。它的图像应该更改。现在我收到错误,请查找我使用的以下代码

package com.example.tesfragement;
import com.maintab.CompareNow;
import com.maintab.Login;
import com.maintab.Search;

import android.os.Bundle;
import android.app.Activity;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.app.Fragment;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.widget.Button;
import android.widget.ImageView;
import com.maintab.*;


public class MainActivity extends Activity {



    Fragment fragement;
    ImageView loginbtn,comparebtn,searchbtn;
    Resources res = getResources();


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test);
        loginbtn=(ImageView)findViewById(R.id.login_button);
        comparebtn=(ImageView)findViewById(R.id.comapre_now_button);
        searchbtn=(ImageView)findViewById(R.id.search_button);



        FragmentManager fm=getFragmentManager();
        FragmentTransaction ft=fm.beginTransaction();
        StartFragment myfragement=new StartFragment();

        ft.add(R.id.myFragement,  myfragement);

        ft.commit();


        loginbtn.setOnClickListener(btnOnClickListener);
        comparebtn.setOnClickListener(btnOnClickListener);
        searchbtn.setOnClickListener(btnOnClickListener);

        //here change images according to touch 
        loginbtn.setOnTouchListener(new OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent arg1) {

                // TODO Auto-generated method stub
                // 
                switch (arg1.getAction()) {
                case MotionEvent.ACTION_DOWN: {
                    ((ImageView)v).setImageResource(R.drawable.compare_now_click);

                    break;
                }
                case MotionEvent.ACTION_CANCEL:{
                    ((ImageView)v).setImageResource(R.drawable.compare_now_click);
                    break;
                }
                }
                return true;



            }
        });

    }


   ImageView.OnClickListener btnOnClickListener=new ImageView.OnClickListener()
   {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub

        Fragment newFragment;

        if(v==loginbtn)
        {
            newFragment=new Login();

        }
        else if(v==comparebtn)
        {
            newFragment=new CompareNow();
        }
        else if(v==searchbtn)
        {
            newFragment=new Search();
        }
        else
            newFragment=new StartFragment();


        FragmentTransaction transaction=getFragmentManager().beginTransaction();
        transaction.replace(R.id.myFragement,newFragment);
        transaction.addToBackStack(null);
        transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
        transaction.commit();

    }

   };

  // ImageView.setOnTouchListener btnOntouchListner=new ImageView.setOnTouchListener();


}
Logcat请在我的Logcat下面找到

02-17 13:46:18.368: E/AndroidRuntime(6883): FATAL EXCEPTION: main
02-17 13:46:18.368: E/AndroidRuntime(6883): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.tesfragement/com.example.tesfragement.MainActivity}: java.lang.NullPointerException
02-17 13:46:18.368: E/AndroidRuntime(6883):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1891)
02-17 13:46:18.368: E/AndroidRuntime(6883):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1992)
02-17 13:46:18.368: E/AndroidRuntime(6883):     at android.app.ActivityThread.access$600(ActivityThread.java:127)
02-17 13:46:18.368: E/AndroidRuntime(6883):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1158)
02-17 13:46:18.368: E/AndroidRuntime(6883):     at android.os.Handler.dispatchMessage(Handler.java:99)
02-17 13:46:18.368: E/AndroidRuntime(6883):     at android.os.Looper.loop(Looper.java:137)
02-17 13:46:18.368: E/AndroidRuntime(6883):     at android.app.ActivityThread.main(ActivityThread.java:4511)
02-17 13:46:18.368: E/AndroidRuntime(6883):     at java.lang.reflect.Method.invokeNative(Native Method)
02-17 13:46:18.368: E/AndroidRuntime(6883):     at java.lang.reflect.Method.invoke(Method.java:511)
02-17 13:46:18.368: E/AndroidRuntime(6883):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980)
02-17 13:46:18.368: E/AndroidRuntime(6883):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747)
02-17 13:46:18.368: E/AndroidRuntime(6883):     at dalvik.system.NativeStart.main(Native Method)
02-17 13:46:18.368: E/AndroidRuntime(6883): Caused by: java.lang.NullPointerException
02-17 13:46:18.368: E/AndroidRuntime(6883):     at android.content.ContextWrapper.getResources(ContextWrapper.java:81)
02-17 13:46:18.368: E/AndroidRuntime(6883):     at com.example.tesfragement.MainActivity.<init>(MainActivity.java:29)
02-17 13:46:18.368: E/AndroidRuntime(6883):     at java.lang.Class.newInstanceImpl(Native Method)
02-17 13:46:18.368: E/AndroidRuntime(6883):     at java.lang.Class.newInstance(Class.java:1319)
02-17 13:46:18.368: E/AndroidRuntime(6883):     at android.app.Instrumentation.newActivity(Instrumentation.java:1026)
02-17 13:46:18.368: E/AndroidRuntime(6883):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1882)
02-17 13:46:18.368: E/AndroidRuntime(6883):     ... 11 more
02-17 13:51:33.133: D/AndroidRuntime(7457): Shutting down VM
02-17 13:51:33.133: W/dalvikvm(7457): threadid=1: thread exiting with uncaught exception (group=0x40c491f8)
02-17 13:51:33.138: E/AndroidRuntime(7457): FATAL EXCEPTION: main
02-17 13:51:33.138: E/AndroidRuntime(7457): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.tesfragement/com.example.tesfragement.MainActivity}: java.lang.NullPointerException
02-17 13:51:33.138: E/AndroidRuntime(7457):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1891)
02-17 13:51:33.138: E/AndroidRuntime(7457):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1992)
02-17 13:51:33.138: E/AndroidRuntime(7457):     at android.app.ActivityThread.access$600(ActivityThread.java:127)
02-17 13:51:33.138: E/AndroidRuntime(7457):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1158)
02-17 13:51:33.138: E/AndroidRuntime(7457):     at android.os.Handler.dispatchMessage(Handler.java:99)
02-17 13:51:33.138: E/AndroidRuntime(7457):     at android.os.Looper.loop(Looper.java:137)
02-17 13:51:33.138: E/AndroidRuntime(7457):     at android.app.ActivityThread.main(ActivityThread.java:4511)
02-17 13:51:33.138: E/AndroidRuntime(7457):     at java.lang.reflect.Method.invokeNative(Native Method)
02-17 13:51:33.138: E/AndroidRuntime(7457):     at java.lang.reflect.Method.invoke(Method.java:511)
02-17 13:51:33.138: E/AndroidRuntime(7457):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980)
02-17 13:51:33.138: E/AndroidRuntime(7457):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747)
02-17 13:51:33.138: E/AndroidRuntime(7457):     at dalvik.system.NativeStart.main(Native Method)
02-17 13:51:33.138: E/AndroidRuntime(7457): Caused by: java.lang.NullPointerException
02-17 13:51:33.138: E/AndroidRuntime(7457):     at android.content.ContextWrapper.getResources(ContextWrapper.java:81)
02-17 13:51:33.138: E/AndroidRuntime(7457):     at com.example.tesfragement.MainActivity.<init>(MainActivity.java:29)
02-17 13:51:33.138: E/AndroidRuntime(7457):     at java.lang.Class.newInstanceImpl(Native Method)
02-17 13:51:33.138: E/AndroidRuntime(7457):     at java.lang.Class.newInstance(Class.java:1319)
02-17 13:51:33.138: E/AndroidRuntime(7457):     at android.app.Instrumentation.newActivity(Instrumentation.java:1026)
02-17 13:51:33.138: E/AndroidRuntime(7457):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1882)
02-17 13:51:33.138: E/AndroidRuntime(7457):     ... 11 more
02-17 13:46:18.368:E/AndroidRuntime(6883):致命异常:main
02-17 13:46:18.368:E/AndroidRuntime(6883):java.lang.RuntimeException:无法实例化活动组件信息{com.example.tesfragement/com.example.tesfragement.MainActivity}:java.lang.NullPointerException
02-17 13:46:18.368:E/AndroidRuntime(6883):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1891)
02-17 13:46:18.368:E/AndroidRuntime(6883):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1992)
02-17 13:46:18.368:E/AndroidRuntime(6883):在android.app.ActivityThread.access$600(ActivityThread.java:127)
02-17 13:46:18.368:E/AndroidRuntime(6883):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1158)
02-17 13:46:18.368:E/AndroidRuntime(6883):在android.os.Handler.dispatchMessage(Handler.java:99)上
02-17 13:46:18.368:E/AndroidRuntime(6883):在android.os.Looper.loop(Looper.java:137)
02-17 13:46:18.368:E/AndroidRuntime(6883):位于android.app.ActivityThread.main(ActivityThread.java:4511)
02-17 13:46:18.368:E/AndroidRuntime(6883):位于java.lang.reflect.Method.Invokenactive(本机方法)
02-17 13:46:18.368:E/AndroidRuntime(6883):位于java.lang.reflect.Method.invoke(Method.java:511)
02-17 13:46:18.368:E/AndroidRuntime(6883):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980)
02-17 13:46:18.368:E/AndroidRuntime(6883):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747)
02-17 13:46:18.368:E/AndroidRuntime(6883):在dalvik.system.NativeStart.main(本机方法)
02-17 13:46:18.368:E/AndroidRuntime(6883):由以下原因引起:java.lang.NullPointerException
02-17 13:46:18.368:E/AndroidRuntime(6883):位于android.content.ContextWrapper.getResources(ContextWrapper.java:81)
02-17 13:46:18.368:E/AndroidRuntime(6883):位于com.example.tesfragement.MainActivity。(MainActivity.java:29)
02-17 13:46:18.368:E/AndroidRuntime(6883):位于java.lang.Class.newInstanceImpl(本机方法)
02-17 13:46:18.368:E/AndroidRuntime(6883):位于java.lang.Class.newInstance(Class.java:1319)
02-17 13:46:18.368:E/AndroidRuntime(6883):在android.app.Instrumentation.newActivity(Instrumentation.java:1026)上
02-17 13:46:18.368:E/AndroidRuntime(6883):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1882)
02-17 13:46:18.368:E/AndroidRuntime(6883):。。。还有11个
02-17 13:51:33.133:D/AndroidRuntime(7457):关闭虚拟机
02-17 13:51:33.133:W/dalvikvm(7457):threadid=1:线程以未捕获异常退出(组=0x40c491f8)
02-17 13:51:33.138:E/AndroidRuntime(7457):致命异常:main
02-17 13:51:33.138:E/AndroidRuntime(7457):java.lang.RuntimeException:无法实例化活动组件信息{com.example.tesfragement/com.example.tesfragement.MainActivity}:java.lang.NullPointerException
02-17 13:51:33.138:E/AndroidRuntime(7457):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1891)
02-17 13:51:33.138:E/AndroidRuntime(7457):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1992)
02-17 13:51:33.138:E/AndroidRuntime(7457):在android.app.ActivityThread.access$600(ActivityThread.java:127)
02-17 13:51:33.138:E/AndroidRuntime(7457):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1158)
02-17 13:51:33.138:E/AndroidRuntime(7457):在android.os.Handler.dispatchMessage(Handler.java:99)上
02-17 13:51:33.138:E/AndroidRuntime(7457):在android.os.Looper.loop(Looper.java:137)上
02-17 13:51:33.138:E/AndroidRuntime(7457):在android.app.ActivityThread.main(ActivityThread.java:4511)上
02-17 13:51:33.138:E/AndroidRuntime(7457):位于java.lang.reflect.Method.Invokenactive(本机方法)
02-17 13:51:33.138:E/AndroidRuntime(7457):位于java.lang.reflect.Method.invoke(Method.java:511)
02-17 13:51:33.138:E/AndroidRuntime(7457):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980)
02-17 13:51:33.138:E/AndroidRuntime(7457):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747)
02-17 13:51:33.138:E/AndroidRuntime(7457):在dalvik.system.NativeStart.main(本机方法)
02-17 13:51:33.138:E/AndroidRuntime(7457):由以下原因引起:java.lang.NullPointerException
02-17 13:51:33.138:E/AndroidRuntime(7457):位于android.content.ContextWrapper.getResources(ContextWrapper.java:81)
02-17 13:51:33.138:E/AndroidRuntime(7457):位于com.example.tesfragement.MainActivity。(MainActivity.java:29)
02-17 13:51:33.138:E/AndroidRuntime(7457):位于java.lang.Class.newInstanceImpl(本机方法)
02-17 13:51:33.138:E/AndroidRuntime(7457):在java.lang.Class.newInstance(Class.java:1319)上
02-17 13:51:33.138:E/AndroidRuntime(7457):在android.app.Instrumentation.newActivity(Instrumentation.java:1026)上
02-17 13:51:33.138:E/AndroidRuntime(7457):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1882)
02-17 13:51:33.138:E/AndroidRuntime(7457):。。。还有11个
getResources()
仅在
onCreate()
之后或中起作用,因为
活动
之前没有
上下文

onCreate()
中填写
资源
变量:


在创建时将其移到内部
onCreate

   Resources res = getResources();
getResources()
需要
上下文<代码>上下文
在创建活动后可用

参考:

编辑:

到帖子下面的评论

Resources res; //declare as instance variable
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.test);
    res = getResources(); // initialize

初始化
res
内部
onCreate()
方法

Resources res;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.test);

    res = getResources();
}
替换此行

((ImageView)v).setImageResource(R.drawable.compare_now_click);
用这个

((ImageView)v).setImageDrawable(res.getDrawable(R.drawable.compare_now_click));
setImageResource(int)acc
((ImageView)v).setImageDrawable(res.getDrawable(R.drawable.compare_now_click));