私はこの本当に厄介な問題を数日間抱えていましたが、まったく解決できないようです. ファイルを開こうとしているので、プロジェクトのフォルダー.csv
にインポートしました。次に、メソッドres/raw/
を介してそれを開いて読み取ろうとしていますが、それがまさに.. ファイルを読み取り、使用可能な行で配列を埋めるメソッドを次に示します。getResources()
NullPointerException
ここで、 class からActivity
Object を作成し、次に classからメソッドを呼び出します。newwords
Words
PlayWithRawFiles()
Words
public class Swear_Activity extends Activity implements OnInitListener, OnClickListener {
private Words newwords;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_swear);
}
public void onClick(View view){
try {
newwords.PlayWithRawFiles();
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("greshka");
e.printStackTrace();
}
}
}
これはエラーが発生するクラスです
public class Words{
public Word[] wordsArray;
private String locale = "de";
public Words(String locale) {
if (locale != null ) {
this.locale = locale;
}
}
Context c;
public void PlayWithRawFiles() throws IOException {
String str="";
StringBuffer buf = new StringBuffer();
int i = 0;
InputStream is = c.getResources().openRawResource(R.raw.est);
BufferedReader reader = null;
try{
if (is != null) reader = new BufferedReader(new InputStreamReader(is));
}
catch(Exception e) {
System.out.println ("ss");
e.printStackTrace();
}
if (is!=null) {
while ((str = reader.readLine()) != null) {
Word wd = new Word(1,"str");
this.wordsArray[i] = wd;
i++;
}
}
is.close();
}
}
ここにクラスWordがあります
public class Word {
private int type;
private String data;
public Word(int type, String data){
this.type = type;
this.data=data;
}
public int getType(){
return this.type;
}
public String getData(){
return this.data;
}
}
これがスタックトレースです
07-10 13:28:58.558: E/AndroidRuntime(647): 致命的な例外: メイン
07-10 13:28:58.558: E/AndroidRuntime(647): java.lang.NullPointerException
07-10 13:28:58.558: E/AndroidRuntime(647): de.android.swearapp.Swear_Activity.onClick(Swear_Activity.java:32)
07-10 13:28:58.558: E/AndroidRuntime(647): >android.view.View.performClick(View.java:2408) で
07-10 13:28:58.558: E/AndroidRuntime(647): android.view.View$PerformClick.run(View.java:8816) で
07-10 13:28:58.558: E/AndroidRuntime(647): android.os.Handler.handleCallback(Handler.java:587) で
07-10 13:28:58.558: E/AndroidRuntime(647): android.os.Handler.dispatchMessage(Handler.java:92) で
07-10 13:28:58.558: E/AndroidRuntime(647): android.os.Looper.loop(Looper.java:123)
07-10 13:28:58.558: E/AndroidRuntime(647): android.app.ActivityThread.main (ActivityThread.java:4627) で
07-10 13:28:58.558: E/AndroidRuntime(647): java.lang.reflect.Method.invokeNative(ネイティブ メソッド) で
07-10 13:28:58.558: E/AndroidRuntime(647): java.lang.reflect.Method.invoke(Method.java:521) で
07-10 13:28:58.558: E/AndroidRuntime(647): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) で
07-10 13:28:58.558: E/AndroidRuntime (647): com.android.internal.os.ZygoteInit.main (ZygoteInit.java:626) で
07-10 13:28:58.558: E/AndroidRuntime(647): dalvik.system.NativeStart.main(ネイティブ メソッド) で
私は何を間違えましたか?私は本当にこれで立ち往生しています。前もって感謝します!