如何更換運行應用程序(主要活動文件)的一些文件,如文件裏面,替換佈局文件和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