如何更换运行应用程序(主要活动文件)的一些文件,如文件里面,替换布局文件和java文件夹(机器人工作室)
/src/main/java/[com.package.name ] /home.java /src/main/res/layout/home.xml
与其他文件:
/src/main/assets/home.java /SRC /主/ 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:来源 '/src/main/assets/activity_home.xml' 不存在 在org.apache.commons.io.FileUtils.copyFile(文件实用程序。的java:636) 在org.apache.commons.io.FileUtils.copyFile(FileUtils.java:606) 在cz.oscio.oscioosp.logging.onPostExecute(logging.java:112) 在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.As yncTask $ InternalHandler.handleMessage(AsyncTask.java:668) 在android.os.Handler.dispatchMessage(Handler.java:102) 在android.os.Looper.loop(Looper.java:148)
在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)
您的路径以“/”或“./”开头?因为它会有不同的解释 – Nathan
我建议我的路径始于应用程序,所以我只是从应用程序文件夹...(如C:/Users/Public/MYAPP/app/src/main/assets/home.xml),因此我用/ src/main ... –
我的意思是,如果你的路径以'/'开始,它可能(可能)会被解释为非相对路径,即从你的主目录开始。你有没有尝试把绝对路径(C:/Users/Public/MYAPP/app/src/main/assets/home.xml)? – Nathan