[英]Doesn't read file
首先,我要为我的英语不好而道歉,我来自斯洛伐克;)
所以我有问题
我的朋友想创建一个非常简单的翻译应用程序,非常非常简单。 我们是android以及Java编程的初学者。 问题是,我们的apk在Eclipse中运行良好,因此我们决定创建apk文件并将其安装在我们的设备中。 因此,当我们安装它而出现问题时,设备中的apk无法读取文件中的单词。 因此,我们在eclipse模拟器中再次尝试了它,但是也无法正常工作,但是在创建apk之前,它已经完全正常了。 我们的文件在res / raw / dictionary中
这是我们的代码
package com.example.dictionary;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
TextView Vstup;
TextView Vystup;
Button presun;
String slovo;
String word;
String found;
Boolean click;
int i;
int j;
String sub;
String strf;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Vstup = (TextView)findViewById(R.id.editText1);
Vystup = (TextView)findViewById(R.id.textView2);
presun = (Button)findViewById(R.id.button1);
presun.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
try
{
slovo = Vstup.getText().toString();
InputStream is = getResources().openRawResource(R.raw.dictionary);
InputStreamReader inputStreamReader = new InputStreamReader(is);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
while((strf = bufferedReader.readLine()) != null)
{
i = strf.indexOf(":"); // vrati prvu poziciu retazca
j = strf.indexOf(",");
sub = strf.substring(0,i); //vyberie zo stringu podretazec od indexu 0 po i
if(slovo.equals(sub))
{
found = strf.substring(i+1,j);
word = ("Výstup: " + found);
Vystup.setText(word.toString());
}
else {
word = ("Výstup: Word not found");
Vystup.setText(word.toString());
}
}
bufferedReader.close();
}
catch(Exception e)
{
System.out.println(e);
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
错误日志
error opening trace file: no such file or directory(2)
getResources()。openRawResource()获取Android项目res / raw /目录中文件的InputStream。 openRawResource()的参数是一个名为R.raw的int。 filename ,其中filename是不带扩展名的文件的名称。
因此,该文件将不在res / assets /目录中。
尽管您可以仔细检查要读取的文件实际上是在res / raw中,但对我来说,可以构建APK并获得R.raw似乎很奇怪。 文件名条目(如果文件实际上不存在)。 我将使用调试器来逐步检查代码并检查变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.