1

この質問は以前にもありましたが、私はこの問題を克服できませんでした。グローバル変数を定義したいので、extend を使いapplication classました。しかし、私はこれに到達することはできませんsubclass

パブリックコンストラクターも作成しました。

superclasssubclassここにいます:

class GlobalVariables extends Application {

    private int sessionid;
    private Locale locale;

    public GlobalVariables(){
    }

    public int getSessionid() {
        return sessionid;
    }

    public void setSessionid(int sessionid) {
        this.sessionid = sessionid;
    }

    public Locale getLocale() {
        return locale;
    }

    public void setLocale(Locale locale) {
        this.locale = locale;
    }
}

class Application extends Activity {

    Intent intent;
    int sessionid;
    Log log = new Log();
    SQLiteDatabase db2;
    GeneralLog db = new GeneralLog(this);

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        sessionid = getSessionId()+1;

        GlobalVariables glb = new GlobalVariables();
        glb.setSessionid(sessionid);

        setContentView(R.layout.application);
    }

    public int getSessionId() {
        SQLiteDatabase db2 = db.getReadableDatabase();
        final SQLiteStatement stmt = db2.compileStatement("SELECT MAX(sessionid) FROM LOG2");

        return (int) stmt.simpleQueryForLong();
    }

    public Application() {
    }
}

このエラーが発生しています:

java.lang.IllegalAccessException : access the class not allowed
4

3 に答える 3

1

拡張するクラスApplicationpublic

public class GlobalVariables extends Application 
于 2013-02-18T09:04:02.847 に答える
1

クラスに追加publicすると、問題が解決します。

public class GlobalVariables extends Application
于 2013-02-18T09:05:58.767 に答える
0

クラスのスコープを指定しない場合、デフォルトでプライベートになります。他の場所からアクセスできるように、公開する必要があります。

于 2013-02-18T09:35:32.873 に答える