在我的应用程序中,我已经将Token类实现为单例来处理用户的身份。但是,当我启动我的应用程序时,它失败并出现以下错误:
java.lang.RuntimeException:无法实例化应用程序 appliflo.Token:java.lang.IllegalAccessException:private 无法从类访问appliflo.Token() android.app.Instrumentation
我想知道天气可能是由于Application类的继承。
这是我的单身人士:
package appliflo;
import android.app.Application;
public final class Token extends Application{
private static long TokenID;
private static Token instance;
private Token(){
}
private Token(long TokenID){
this.TokenID = TokenID;
}
public static synchronized Token getToken() {
if (instance == null) instance = new Token();
return instance;
}
public static synchronized void setToken(long id){
if (instance == null) instance = new Token(id);
instance.TokenID = id;
}
public long getTokenID(){
return this.TokenID;
}
}
答案 0 :(得分:0)
由于您的异常消息指出类android.app.Instrumentation
无法创建应用程序的实例,因为它无法访问其构造函数,因为它是私有的。
您需要拥有一个没有参数的公共构造函数,以允许Android系统创建它的实例来启动您的应用程序。
您不会自己创建Token
的实例,因此静态方法getToken
和setToken
将无用。
评论中的问题更新:
如果您需要更新tokenId更新,则get和set方法只更新long,而不是创建Token
类的新实例。
public static synchronized long getToken() {
return TokenID;
}
public static synchronized void setToken(long id){
TokenID = id;
}