///////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////Öğelerden metin dosyasını okuyamıyorum (Android Studio, JAVA)
Bu yüzden cevap Henry'nin söylediği şeydir. Bir etkinlik olmayan sınıftan varlıklara erişmek imkansız. AssetManager nesnesini ana etkinlikten parametre olarak geçirdikten sonra, etkin olmayan bir sınıf yönteminin varlığı okuyabildiği çalışır. Benim durumumda :
AssetManager am = getAssets();
tc.ReadFile2(am);
////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ///////////////////////
Öğeler dizini .txt değerini okumada sorun yaşıyorum. Neredeyse her şeyi denedim ama sonuç hep aynıdır: directory tree
Ben de varlıklarını listelemeye çalıştık, ancak sonuç yukarıdaki aynıdır:
I/System.out: java.lang.NullPointerException
Bu projenin dizin ağacını böyle görünüyor. İşte benim sınıfının geçerli kod:
import java.io.*;
import java.lang.*;
import android.content.res.AssetManager;
import android.support.v7.app.AppCompatActivity;
public class TextChange extends AppCompatActivity {
public TextChange(){}
protected String ReadFile() throws IOException{
BufferedReader reader = null;
reader = new BufferedReader(new InputStreamReader(context.getAssets().open("sampleText.txt")));
String text = "";
while (reader.readLine() != null){
text = reader.readLine();
}
System.out.println(text);
return text;
}
protected String ReadFile2() throws IOException{
StringBuilder buf = new StringBuilder();
InputStream input = getAssets().open("sampleText2.txt");
BufferedReader in = new BufferedReader(new InputStreamReader(input, "UTF-8"));
String str;
while ((str=in.readLine()) != null) {
buf.append(str);
}
in.close();
return buf.toString();
}
public String[] ListAssets() throws IOException{
AssetManager am = getAssets();
String[] files = am.list("");
for (String s : files) {
System.out.println(s);
}
return files;
}
}
kimse yanlış ve nasıl bu sorunu gidermek için bana söyleyebilir? Herhangi bir yardım gelebilir!
printStackTrace:
W/System.err: java.lang.NullPointerException
W/System.err: at android.content.ContextWrapper.getAssets(ContextWrapper.java:83)
W/System.err: at jb.jbench.TextChange.ReadFile2(TextChange.java:28)
W/System.err: at jb.jbench.MainActivity$3.onClick(MainActivity.java:43)
W/System.err: at android.view.View.performClick(View.java:4438)
W/System.err: at android.view.View$PerformClick.run(View.java:18422)
W/System.err: at android.os.Handler.handleCallback(Handler.java:733)
W/System.err: at android.os.Handler.dispatchMessage(Handler.java:95)
W/System.err: at android.os.Looper.loop(Looper.java:136)
W/System.err: at android.app.ActivityThread.main(ActivityThread.java:5001)
W/System.err: at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err: at java.lang.reflect.Method.invoke(Method.java:515)
W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
W/System.err: at dalvik.system.NativeStart.main(Native Method)
NullPointerException hangi satırda? StackTrace'in tamamını yayınlayabilir misiniz? –
Tam istisna mesajı, Boş İşaretçi Kural Dışı Özel Durumunu atan belirli bir satır numarası verecektir. Kodunuzda hangi satırın bu hata mesajı ile gösterildiğini bize söylerseniz, muhtemelen size yardımcı olabiliriz. –
Bu sınıf, bir etkinliğin geçersiz bir uygulaması gibi görünüyor, çünkü bir “onCreate()” yöntemine sahip değilsiniz, kaynak tarafından yönlendirilen "bağlam" alanına sahip değilsiniz. – CommonsWare