Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在浏览器上查看txt文件会导致应用程序崩溃,无法找到包含/storage/simulated的已配置根目录/_Android - Fatal编程技术网

Android 在浏览器上查看txt文件会导致应用程序崩溃,无法找到包含/storage/simulated的已配置根目录/

Android 在浏览器上查看txt文件会导致应用程序崩溃,无法找到包含/storage/simulated的已配置根目录/,android,Android,我试图通过浏览器上的文件提供程序打开log.txt,但应用程序因IllegalArgumentException而崩溃 下面我复制了我正在使用的代码片段。如果你需要更多的细节,请告诉我 String mReportsONSD = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "reports" +

我试图通过浏览器上的文件提供程序打开log.txt,但应用程序因IllegalArgumentException而崩溃

下面我复制了我正在使用的代码片段。如果你需要更多的细节,请告诉我

        String mReportsONSD =  Environment.getExternalStorageDirectory().getAbsolutePath()
            + File.separator
            + "reports"
            + File.separator;
        String Logfile = "logd.txt";

        File newFile = new File(mReportsONSD+Logfile);
        Intent intent = new Intent(Intent.ACTION_VIEW, null);
        intent.setComponent(ComponentName.unflattenFromString("com.android.chrome/com.google.android.apps.chrome.Main"));

             Uri logURI = FileProvider.getUriForFile(this, getPackageName(), newFile);

        intent.setData(logURI );

        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);

        startActivity(intent);
path.xml从外部存储器访问文件

<?xml version="1.0" encoding="utf-8"?>
<paths>

  <external-files
      name="external_files"
      path="/" />
</paths>

中没有名为
的外部文件。将其更改为
外部路径

<?xml version="1.0" encoding="utf-8"?>
<paths>

  <external-path
      name="external_files"
      path="/" />
</paths>

此外:

  • 您可以替换新的意图(Intent.ACTION\u视图,空)具有
    新的意图(意图.行动\u视图)

  • Environment.getExternalStorageDirectory()
    ,因此我强烈建议您将内容存储在其他地方(例如,通过
    Context
    上的
    getExternalFilesDir()
    标识的目录)


感谢您的更正,这不是崩溃,但我得到了这个url
content://com.stylingandroid.fileprovider/external_files/reports/logd.txt
错误
Err:FILE\u未找到
我试图设置权限
grantUriPermission(“com.android.chrome”),logURI/*/storage/simulated/0/reports/logd.txt*/,Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION)还是同一个错误,我是不是遗漏了什么?@user755:也许你那里没有文件。此外,您正试图使用
setComponent()
入侵Chrome,并且不需要Chrome来支持您的请求。我认为必须调用
setComponent()
才能通过intent with
packagename
acitvityname
@user755启动其他应用程序:“intent如何知道在不调用setComponent()的情况下启动哪个应用程序?”——一个隐式的
intent
(一个没有组件的)被Android处理得非常好。Android会查看哪些活动支持
intent
结构(
ACTION\u VIEW
内容:
Uri
,MIME类型,等等).请参阅。许多Android应用程序开发书籍和课程也介绍了这一点。
<?xml version="1.0" encoding="utf-8"?>
<paths>

  <external-path
      name="external_files"
      path="/" />
</paths>