3つに分けたFragmentにDBの検索結果を表示したくてあがいていたら、よくわからないエラーが出ました…。
MyOpenHelper型の変数を初期化しようとしているところで、「~cannot be accessed from outside package」というエラーが出ました。
MyOpenHelperは、SQLiteを使うためのJavaクラスなんですが、構成とかほぼコピペのクラスなのになんでエラー出るかな…って謎の極みです。
で、検索してみたら…まったく同じエラーを出した人が書いてる質問ページが見つかったのだけど…回答に書かれてることの意味が分からないww
「packageが違う場合、「User」クラスをpublicにする必要があります。」
「packageが違う」ってどーゆーことかしら?同じプロジェクト内のファイル何ですけど…![]()
前にお試しで軽くSQLiteの読み書きやった時は、こんなエラー出なかったので、多分、Javaファイルの階層が原因じゃないかなーと予想。
BottomNavigationActivityで勝手に作られたフォルダ以下のFragmentファイルから、1階層上のフォルダのMyOpenHelperファイル見ようとしてるしな…
※ピンクの←のとこ見てもらうと、ファイルの階層が違ってるでしょ
しかし、「「User」クラスをpublicにする」とはどーゆーことでしょうか??
MyOpenHelperファイルをじーっと見てみて、publicになってないとこを探したら…
あった!
まさに「MyOpenHelper」って書かれてるとこ!!
このピンクの↑のとこに「public」って入れて
public MyOpenHelper(Context context) {
にしたらエラー消えました
クラスがらみはよくわからないけど、とりあえず解決~