无法在Android 6.0中创建SD卡中的文件夹,在发布模式下使用Adobe Flex代码ANE扩展

问题描述:

这是在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代码 –

你应该尝试的痕迹(如许可状态,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”)这不是调用...? –