我在Android设备中运行应用程序时发现了一些崩溃,这在模拟器中没有显示.所以我需要将Logcat保存在设备内存或SD卡的文本文件中.你能建议我这样做的好方法吗?
我想在SD卡中创建一个文件夹,我已经添加了权限
<user-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)
在manifest file.below是我的代码,但mkdirs返回false!你能帮助我吗!
File exportDir = new File(
Environment.getExternalStorageDirectory().toString(), "happydiarybackup");
if (!exportDir.exists()) {
boolean a = exportDir.mkdirs();
Log.d("mkdir ",exportDir.getAbsolutePath() + " make "+ a);
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试通过以下解释和此代码将我自己的警报音复制到Android系统.
问题是我无法将文件从原始资源复制到外部存储器.我在这里看了其他问题,但似乎没有答案对我有用.
这是我的AndroidManifest(我把WRITE_EXTERNAL_STORAGE外应用程序标记为说明这里):
...
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application...
Run Code Online (Sandbox Code Playgroud)
这是我的代码.它运行在从我的主要活动的onCreate开始的新线程上.从该新线程调用方法"void onFirstTime()",并且此方法重复调用"void copyRawRingtone(File dstPath,int resId)":
void copyRawRingtone(File dstPath, int resId) {
final String fileName = getResources().getResourceEntryName(resId) + ".mp3";
File dstFile = new File(dstPath, fileName);
if (!dstFile.exists()) {
InputStream srcStream = getResources().openRawResource(resId);
FileOutputStream dstStream = null;
try {
dstFile.createNewFile(); // THIS THROWS THE EXCEPTION
dstStream = new FileOutputStream(dstFile);
byte[] buffer = new …Run Code Online (Sandbox Code Playgroud) 这真让我抓狂。我已经尝试了各种语法,但两者mkdir()并mkdirs()返回FALSE。
我的代码:
String extStorageDirectory = Environment.getExternalStorageDirectory().toString();
File folder = new File(extStorageDirectory, "myportal");
boolean bool = folder.mkdir();
File pdfFile = new File(folder, fileName);
try{
pdfFile.createNewFile();
}catch (IOException e){
e.printStackTrace();
}
FileDownloader.downloadFile(fileUrl, pdfFile);
Run Code Online (Sandbox Code Playgroud)
我正在IOException: No such file or directory尝试创建文件时。logcat 部分显示没有创建目录:
Log.d("BG", "URL: " + fileUrl);
Log.d("BG", "pdfFile: " + pdfFile);
Log.d("BG", "Ext Storage: " + extStorageDirectory);
Log.d("BG", "Ext storage state: " + Environment.getExternalStorageState().toString());
Log.d("BG", "Mkdir return: " + bool);
Log.d("BG", "IsDirectory: " + folder.isDirectory());
Run Code Online (Sandbox Code Playgroud)
以及打印的内容:
05-26 …Run Code Online (Sandbox Code Playgroud) 我实际上能够捕获照片并将其保存在 android 外部存储 DCIM 文件夹中。
我的问题是我无法在其中创建新文件夹,因此DCIM/MyPic.jpg变为DCIM/MyFolder/MyPic.jpg。
这是我的源代码:
File f = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM), "address");
if (!f.exists()) {
f.mkdir();
}
File file = new File(Environment.getExternalStorageDirectory()
+ File.separator
+ "DCIM"
+ File.separator
+ "address"
+ File.separator
, "IMG_001.jpg");
Run Code Online (Sandbox Code Playgroud)
请注意,我在清单中正确地要求了 WRITE_EXTERNAL_STORAGE 权限。
捕获照片的意图部分很好,因为我可以将其直接保存到 DCIM。
我没有收到任何错误消息,但没有任何反应......没有创建“地址”文件夹:(
感谢您的帮助:D