当前位置: 首页 > 知识库问答 >
问题:

替换文件内布局文件夹和java文件夹(android Studio)

卢翔宇
2023-03-14

如何替换正在运行的应用程序中的某些文件(主要活动文件),例如:。,

/src/main/java/[com.package.name]/home.java /src/main/res/layout/home.xml

与其他文件一起:

/src/main/assets/home.java/src/main/assets/home.xml

我试过:

protected void onPostExecute(String result) {
    alertDialog.setMessage(result);
    alertDialog.show();

    if (result.length() == 5) {
        String sourcePath1 = "/src/main/assets/activity_home.xml";
        File source1 = new File(sourcePath1);
        String sourcePath2 = "/src/main/assets/home.java";
        File source2 = new File(sourcePath2);

        String destinationPath1 = "/src/main/res/layout/activity_home.xml";
        File destination1 = new File(destinationPath1);
        String destinationPath2 = "/src/main/java/cz/oscio/oscioosp/home.java";
        File destination2 = new File(destinationPath2);
        try {
            FileUtils.copyFile(source1, destination1);
            FileUtils.copyFile(source2, destination2);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

但它不起作用,我怀疑是错误的文件路径。如果我尝试:

getAssets().open("activity_home.xml")   //Cannot resolve method 'getAssets()'

但无论如何,这在/src/main/res/layout/的情况下都没有帮助。。。

编辑:它只需要做一次-它会改变应用程序本身,更新代码。

报告:

java.io.FileNotFound异常:源'/src/main/资产/activity_home.xml'不存在于org.apache.commons.io.FileUtils.copy文件(FileUtils.java:636)org.apache.commons.io.FileUtils.copy文件(FileUtils.java:606)在cz.oscio.oscioosp.logging.onPostExecute(logging.java:112)在cz.oscio.oscioosp.logging.onPostExecute(logging.java:33)在android.os.AsyncTask.finish(AsyncTask.java:651)在android.os.AsyncTask-wrap1(AsyncTask.java)在android.os.AsyncTask$InternalHandler.handle消息(AsyncTask.java:668)在android. os.在android. os.在android. app.ActivityThread. main(ActivityThread. java: 5417)在java. lang.反射。方法调用(本机方法)在com. android. interal. os。ZygoteInit$method odAndArgsCaller. run(ZygoteInit. java: 726)在com. android. interal. os。ZygoteInit. main(ZygoteInit. java: 616)

共有1个答案

吴均
2023-03-14

堆栈跟踪是雄辩的:'/src/main/资产/activity_home.xml'不存在。未找到该文件,因此对其进行的处理将引发异常。

您可以使用System.getProperty(“user.dir”)检查应用程序的当前目录 。但是,除非您使用某些特定的方法对其进行更改,否则该目录应该是应用程序的根目录。

您的路径应该是正确的(据我所知),但正如我在评论中所说,您不应该以/开始路径,因为该路径将被解释为绝对路径,即从您的计算机根目录开始。相反,您的路径应该是src/main/assets/activity\u home.xml

 类似资料:
  • 获取指定的文件或文件夹,每次一个。 Loop, FilePattern [, IncludeFolders?, Recurse?] 参数 FilePattern 单个文件或文件夹的名称或者通配符模式,例如 C:\Temp\*.tmp。如果未指定绝对路径则假定 FilePattern 在 %A_WorkingDir%。 支持星号和问号作为通配符使用. 当模式出现在文件的长/普通名称或其 8.3 短名

  • 我试图构建一个应用程序,监视文件夹及其子文件夹,以检测文件的创建或修改。要观看的文件总数将日益增加。 我曾尝试使用java nio WatchService和apache常见的FileAlteration观察者。WatchService有时会在WatchKey被获取之后和重置之前发生文件创建/修改时丢失事件。由于FileAlterationeller是基于轮询的,因此当文件计数增加时性能也会下降。

  • 它可以工作,很酷,但问题是它不能计算正常的文件,如。txt或。png...我知道它写在这个方法中,但idk如何修复它而不破坏其他一切 我可以重做这个方法吗?(此代码不是我的https://stackoverflow.com/a/33438475/13547682)

  • 我有一个像这样的文件夹 应用程序 供应商 引导程序 公开的 文件夹 img 当我从url访问时http://example.com/img/img.png它工作,但当我喜欢访问http://example.com/img/我得到禁止403,我需要的是重定向或显示该页面没有找到我的。htaccess看起来像这样。 选项-多视图选项-索引重写引擎打开

  • GitBook会读取 .gitignore,.bookignore,.ignore 文件来获取忽略的文件和目录的列表。 这些文件的格式,遵循和 .gitignore 同样的约定: # 这是一个注释 # 忽略文件test.md test.md # 忽略文件夹 "bin" 中的所有内容 bin/*

  • 我从我的IntelliJ Java 15 Gradle项目的resources文件夹中的子文件夹加载文件时遇到问题...