2017-05-21 21 views
0

這是在Android 6.0的SD卡中使用Flex代碼創建文件夾的代碼,添加了ANE擴展,AIR版本24.0和swf = 35。在調試模式下工作,但不工作釋放模式。請幫助我。無法在Android 6.0中創建SD卡中的文件夾,在發佈模式下使用Adobe Flex代碼ANE擴展

如果(library.Utility.getDeviceType()== 「ANDROID」)
{

   var permissionCheck : File; 
       permissionCheck = new File(pdfFile.nativePath); 
       permissionCheck.addEventListener(PermissionEvent.PERMISSION_STATUS , function permissionStatusHandler(e : PermissionEvent) :void 
       {       
        permissionCheck.removeEventListener(PermissionEvent.PERMISSION_STATUS , permissionStatusHandler); 
        if(e.status == PermissionStatus.GRANTED) 
        {        
         // save your file 
         pdfFolder = File.userDirectory.resolvePath(".Folder"); 
         if(!pdfFolder.exists) 
          pdfFolder.createDirectory(); 
         trace(pdfFolder.nativePath); 
         //pdfFile = File.applicationStorageDirectory.resolvePath("pdf/" +file); 
         var targetFile:File = File.userDirectory.resolvePath(".Folder/" +file); 
         trace(targetFile.nativePath); 
         if(targetFile.exists) 
          targetFile.deleteFile(); 

         if(!targetFile.exists && pdfFile.exists) 
         { 
          try 
          { 
           pdfFile.copyTo(targetFile); 
           Template.showFile(targetFile.nativePath); 
          } 
          catch(error:Error) 
          { 
           Popup.showMessage("PDF Viewer", "Unable to open " + file + ". File does not exists. " + error.message); 
           trace("Error:" + error.message); 
          } 
         } 
         else 
         { 
          Popup.showMessage("PDF Viewer", "Unable to find " + file + ". File does not exists."); 
         } 

        } 
        else 
        { 
         //showPermissionError(); 
         trace("Error"+ pdfFolder.nativePath); 

        } 

       }); 

       try 
       { 
        permissionCheck.requestPermission(); 

       } 
       catch(error : Error) 
       { 
        trace("Error:" + error.message); 
       } 

      } 
+0

'這是代碼在一個文件中創建文件夾SD卡「那是不可能的。您無法在文件中創建文件夾。無處。 – greenapps

+0

'var permissionCheck:File; '這是哪種語言? – greenapps

+0

它是Adobe Flex代碼 –

回答

2

你應該嘗試的痕跡(如許可狀態,pdfFolder.exists等)寫入到textfield,以便您可以在發佈模式下本地化問題。

還監聽targetFile上的IOErrorEvent.IO_ERROR和SecurityErrorEvent.SECURITY_ERROR,並將它們跟蹤到文本字段,可能存在一些問題。

通常情況下,您應該將應用程序文件保存在File.applicationStorageDirectory而不是userDirectory中,但我想您希望該用戶可以自己訪問這些文件?

嘗試沒有點(「文件夾」而不是「.Folder」)的文件夾。

在Android上,您將需要授予的權限寫入文件可以在您的application.xml

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>    
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 

希望anythign它會幫助:)

+0

Logcat也有助於這種調試。 – Brian

+0

嗨Philarmon和大腦,我已經在上述所有步驟中測試過。但在發佈模式下「無法創建文件夾」意味着「Template.showFile(targetFile.nativePath);」方法不叫。 –

+0

我認爲在發佈模式下,如果(library.Utility.getDeviceType()==「ANDROID」)這不是調用...? –

相關問題