`
debuglog
  • 浏览: 197684 次
社区版块
存档分类
最新评论

Activity缺少无参默认构造方法,产生实例化错误InstantiationException

阅读更多
Android 2.3.3     
Eclipse Version: 3.7.0    
LogCat   

 

主要错误:

 

04-06 11:24:33.126: ERROR/AndroidRuntime(17173): Caused by: java.lang.InstantiationException: com.tmall.nokia.Iphone
04-06 11:24:33.126: ERROR/AndroidRuntime(17173): at java.lang.Class.newInstanceImpl(Native Method)
04-06 11:24:33.126: ERROR/AndroidRuntime(17173): at java.lang.Class.newInstance(Class.java:1409)
04-06 11:24:33.126: ERROR/AndroidRuntime(17173): at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
04-06 11:24:33.126: ERROR/AndroidRuntime(17173): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561)
04-06 11:24:33.126: ERROR/AndroidRuntime(17173): ... 11 more

 


 

发生错误原因分析:

Iphone 继承自 Activity,启动Iphone 进入正常,后在其中加入构造方法。

 

	public Iphone(Context context) {
		this.context = context;
	} 

 

 

在其它地方实例化Iphone ,

 

Iphone Iphone = new Iphone(context); 

 

可正常使用。

 

但在以

	Intent integer = new Intent(context, Iphone.class);
	context.startActivity(integer);

 

方式启动,进入Activity 时,产生上述InstantiationException实例化错误。

 

原来,Activity 默认不需构造函数,但在加入有参数的构造方法后,必须同时加入无参数的默认构造方法

 

解决办法:

Iphone  加入默认构造方法

 

	public Iphone() {
	}

 

发布,正常。


 

 

分享到:
评论

相关推荐

    InstantiationException如何解决.md

    当使用Java的反射API尝试创建一个类的实例时,如果类没有默认的无参构造方法,或者类构造方法不能被访问(例如私有构造方法),那么就可能会抛出InstantiationException异常。 解决InstantiationException的一个...

    java.lang.InstantiationException(解决方案).md

    当遇到类没有无参构造函数的情况,我们需要使用Class对象的getConstructor方法来获取指定参数类型的构造函数,并通过.newInstance方法传入具体的参数值来创建实例。在执行这一操作时,我们同样需要注意捕获并处理...

    InstantiationException.md

    2. **构造函数异常**:如果类的构造函数在实例化过程中抛出了异常,那么这个异常会被包装在InstantiationException中。 3. **数组类实例化**:Java中数组类是特殊的对象,不能直接通过类的名称实例化数组类对象。 #...

    反射和动态实例化

    3. 调用方法(Methods):`Method`类用于调用类的方法,包括静态方法和实例方法,甚至可以传递参数和处理异常。 4. 构造器(Constructors):`Constructor`类用于创建对象,可以指定构造函数并传入参数。 动态实例...

    InstantiationException(解决方案).md

    这种异常通常发生在类或接口无法实例化,尤其是当类通过抽象类或接口定义,或者当类没有无参构造函数时。要解决这个问题,我们需要理解Java的反射API如何工作,以及如何正确地处理可能抛出的异常。 首先,Java的...

    InstantiationException解决办法.md

    当需要实例化的类没有无参构造器,而程序尝试用Class类的newInstance方法创建实例,或者类路径配置错误导致类未能正确加载到JVM中时,该异常便会被抛出。 要解决此问题,首先应当检查类的构造函数。确保目标类拥有...

    Java让泛型实例化的方法

    Java让泛型实例化的方法 Java是一种静态类型语言,它可以在编译时检查类型的正确性,以避免运行时的类型错误。然而,在 Java 中使用泛型时,会出现一个问题:如何实例化泛型对象?在 Java 中,泛型擦除机制使得...

    Java中如何使用字符串来实例化类以及调用类

    `newInstance()`方法可能会抛出`InstantiationException`或`IllegalAccessException`异常,这是因为如果类没有公共无参构造函数,或者构造函数是不可访问的,那么无法直接使用`newInstance()`方法创建实例。...

    java反射例子

    7. newInstance()方法是Class类的一个方法,它调用类的无参构造函数来创建一个类的新实例。需要注意的是,如果类中没有无参构造函数,使用newInstance()会抛出异常。 8. 通过反射机制创建对象时,如果类中定义了带...

    利用反射,根据类得完全限定名获得该类得实例

    这段代码展示了如何使用`loadClass()`方法加载一个类,并通过`newInstance()`创建一个无参数构造函数的实例。这里需要注意的是,如果目标类没有无参数构造函数或者该构造函数不可见,则会抛出异常。 ##### 示例二:...

    张孝祥Java高新技术myeclipse

    每个类至少有一个构造方法,如果没有显式定义,Java会提供一个默认的无参数构造器。通过构造方法,我们可以设置对象的初始状态。 反射的应用主要集中在`java.lang.reflect`包中的三个核心类:`Class`、`Constructor...

    单例模式讲解

    // 受保护的默认构造方法 protected RegSingleton() {} // 静态工厂方法,返回指定登记对象的唯一实例 public static RegSingleton getInstance(String name) { if (name == null) { name = "RegSingleton"; ...

    JAVA单例模式的几种实现方法

    - **安全性高**:由于在类加载时就已完成实例化,因此不需要担心多线程环境下的实例化问题。 - **非懒加载**:无论是否需要使用该单例对象,都会在类加载时实例化,这可能导致资源的浪费。 - **效率较高**:一旦类被...

Global site tag (gtag.js) - Google Analytics