2013-12-13 82 views
10

如何將外部文件包含到'apk'中?Qt 5.2將外部文件包含到Android包中?

實施例:

有「123.txt」在pro文件存在主目錄。我應該添加到pro文件中以將「123.txt」放入apk中。

我試過了部署,部署FOLDERS。但是他們只能用於Symbian和Windows CE。

回答

9

有兩種方法可以做到這一點,就Qt 5.1 Documentation For Android.

  1. 「移植現有的Qt應用程序」他們捆綁到一個QRC下的文件都提到的(作品跨平臺)
  2. 將它們添加到「資產」目錄(安卓專用)

#2:

的 「資產」 直銷tory將在您構建項目時創建。我發現最簡單的方法是使用「INSTALLS」qmake變量在打包到apk文件之前將文件複製到目錄中。以下是來自我製作的項目的qmake文件。請注意,對於INSTALLS,資產的路徑讀取「/ assets」,而不是您所期望的「assets」。 (它實際上結束於Android構建工作區的子目錄中。)

要從android中的代碼訪問目錄,請使用「assets:」。 (在該示例中,/assets/Samples ==>assets:/Samples。)

# - setup the correct location to install to and load from 
android { 
    # android platform 
    # From: http://community.kde.org/Necessitas/Assets 
    SAMPLES_INSTALL_PATH=/assets/Samples 
} else { 
    # other platforms 
    SAMPLES_INSTALL_PATH=$$OUT_PWD/Samples 
} 

# - setup the 'make install' step 
samples.path = $$SAMPLES_INSTALL_PATH 
samples.files += $$SAMPLE_FILES 
samples.depends += FORCE 

INSTALLS += samples 
+0

1.我想它(沒有成功),但後來我才知道,Qt的不允許使用,即使在只讀模式QRC文件中捆綁的數據庫。 – user2400925

+0

2. Qt 5.2不會生成「assets」目錄。我該怎麼辦? – user2400925

+0

我已經用我如何使用assets:目錄的例子更新了答案。 – jwernerny

1

具體到User2400925

在QT 5.1我曾用於從資產文件夾中的數據庫複製到所述用戶的主文件夾,如果文件不存在。應用程序可以使用哪些內容。

你可能會經歷this link

4

可以使用Qt的資源系統。默認情況下,所有Qt應用程序都可以使用「:/」前綴或URL方案前綴「qrc:」來訪問qrc文件的內容。

另一種方法是將資源部署到軟件包的資產目錄中。如果您希望與Android API實現更好的互操作性,那麼這是最好的選擇。您可以使用「assets:」前綴訪問目錄中的所有資源。與qrc不同,這種方法不是跨平臺的解決方案。

當你建立你的項目時,在Build-Directory/android-build/中創建一個名爲「assets」的文件夾。在資產目錄中複製文件後,可以將這些文件添加到您的專業版中:

deployment.files += MyFile1 
deployment.files += MyFile2 
... 
deployment.path = /assets 
INSTALLS += deployment 

資產中的文件是隻讀的。所以,如果你想改變他們,你應該首先將其複製到其他位置:

QFile dfile("assets:/MyFile1"); 
if (dfile.exists()) 
{ 
    dfile.copy("./MyFile1"); 
    QFile::setPermissions("./MyFile1",QFile::WriteOwner | QFile::ReadOwner); 
} 
1

一種更簡單的方式來做到這一點:

1)添加此字符串到你。親

ANDROID_PACKAGE_SOURCE_DIR = $$ PWD/Android的源

2)創建Android的源在凸出文件夾中。把你需要的東西放到android-sources/assets /中。您還可以在其中放入任何其他文件,例如AndroidManifest.xml或android-sources/res/drawable/icon.png,以便將其複製並更新到目標軟件包中。

-1

一種更簡單的方式來做到這一點:

  1. 添加該字符串到您的.pro

ANDROID_PACKAGE_SOURCE_DIR = $$ PWD/Android的源

  • 在你的proj文件夾中創建android-sources文件夾。把你需要的東西放到android-sources/assets /中。您還可以在其中放入任何其他文件,例如AndroidManifest.xml或android-sources/res/drawable/icon.png,以便將其複製並更新到目標軟件包中。
  • +0

    這只是從art926的答案中複製/粘貼的超過一年前發佈。 – RamenChef