替换布局文件夹和java文件夹中的文件(安卓工作室)



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

/

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.FileNotFoundException: Source '/src/main/assets/activity_home.xml' 不存在 at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:636) at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:606) at cz.oscio.oscioosp.logging.onPostExecute(logging.java:112) at cz.oscio.oscioosp.logging.onPostExecute(logging.java:33) at android.os.AsyncTask.finish(AsyncTask.java:651) at android.os.AsyncTask.-wrap1(AsyncTask.java) at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:668) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

堆栈跟踪很有说服力:'/src/main/assets/activity_home.xml' does not exist.找不到该文件,因此对其的处理将引发异常。

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

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

相关内容

  • 没有找到相关文章

最新更新