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

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() {
	}

 

发布,正常。


 

 

分享到:
评论

相关推荐

    反射和动态实例化

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

    Java让泛型实例化的方法

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

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

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

    java反射例子

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

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

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

    InstantiationException如何解决.md

    InstantiationException如何解决.md

    张孝祥Java高新技术myeclipse

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

    InstantiationException(解决方案).md

    InstantiationException(解决方案).md

    单例模式讲解

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

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

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

    Java常见异常和错误总结

    - 尝试实例化抽象类、接口或没有默认构造器的类。 - **解决方法**: - 提供默认构造器。 - 使用其他方式创建对象,如工厂模式。 #### 15. java.lang.InterruptedException - **定义**: 线程处于等待、休眠或其他...

    通过反射获取类的实例

    // 处理类无法实例化的情况,如没有无参构造器 } catch (IllegalAccessException e) { // 处理权限问题,如构造器是私有的 } ``` 在这个例子中,`Class.forName()`用于加载类,`newInstance()`则用于创建类的实例...

    java反射深入剖析(推荐)

    默认情况下,如果类没有公开的无参构造函数,`newInstance()`方法会抛出`InstantiationException`。因此,当使用反射进行实例化时,确保有无参构造函数是必要的。 案例4则演示了如何通过反射调用类的构造函数。为了...

    温习java反射,让你对反射有全新的认识(csdn)————程序.pdf

    `Class`类提供了`newInstance()`方法,它会调用类的默认无参构造函数来创建对象。例如: ```java Class<?> clazz = Class.forName("com.cj.Book"); Object obj = clazz.newInstance(); ``` 如果类没有无参构造函数,...

    Java动态加载类小实验.pdf

    `newInstance()`方法调用类的无参构造器来创建对象,如果类没有无参构造器,则会抛出`InstantiationException`。实例化的过程中,如果访问控制不允许,还会抛出`IllegalAccessException`。 5. **XML配置**:在实际...

    Java 反射机制的应用

    但需要注意的是,被实例化的类必须有一个公共的无参构造器,因为 `newInstance()` 默认调用的就是无参构造器。如果类没有无参构造器,调用 `newInstance()` 会抛出 `InstantiationException`。 2. **通过有参构造...

    java反射详解1

    要通过`Class`对象创建类的实例,可以调用`newInstance()`方法,前提是类必须有一个无参构造器。在案例3中,我们首先通过`Class.forName()`获取`Person`类的`Class`对象,然后尝试使用`newInstance()`创建`Person`...

Global site tag (gtag.js) - Google Analytics