2017-05-21 16 views
0

이것은 안드로이드 6.0의 SD 카드에있는 파일 내에 폴더를 생성하는 코드입니다. 플렉스 코드를 사용하고 있으며, ANE 확장 기능, AIR 버전 24.0 및 swf = 35. 디버그 모드에서 작동하지만 릴리스 모드가 작동하지 않습니다. 제발 도와주세요. 안드로이드 6.0에서 SD 카드에 폴더를 만들 수 없습니다. Adobe Flex 코드를 사용합니다. 릴리스 모드에서 ANE 확장 코드

경우 (library.Utility.getDeviceType() == "인조")
{

   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

도움이 될 것입니다

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

희망 파일을 작성하기위한 권한을 부여해야합니다 안드로이드에

는'이 코드는 파일 내부에 폴더를 생성하는 것입니다 SD 카드'음, 그건 불가능합니다. 파일에 폴더를 만들 수 없습니다. 아무데도. – greenapps

+0

'var permissionCheck : File; '어떤 언어인가? – greenapps

+0

어도비 플렉스 코드 –

답변

2

를 A로 (등등 권한 상태, pdfFolder.exists와 같은) 당신의 흔적을 작성하려고한다 텍스트 필드를 사용하면 릴리스 모드에서 문제를 현지화 할 수 있습니다.

targetFile에서 IOErrorEvent.IO_ERROR 및 SecurityErrorEvent.SECURITY_ERROR을 (를) 청취하고 텍스트 필드로 추적하십시오. 아마도 그 중 일부 문제가있을 수 있습니다.

일반적으로 응용 프로그램 파일은 userDirectory가 아닌 File.applicationStorageDirectory에 저장해야하지만 euser가 직접 파일에 액세스 할 수 있도록 하시겠습니까?

도트가없는 폴더 (".Folder"대신 "Folder")를 사용해보십시오. 당신이 당신의 application.xml을에서의 anythign이 :)

+0

Logcat은 이러한 종류의 디버깅에도 도움이됩니다. – Brian

+0

안녕하세요 필라몬과 브레인, 위의 모든 단계를 테스트했습니다. 그러나 릴리스 모드에서 "폴더를 만들 수 없음"은 "Template.showFile (targetFile.nativePath);"을 의미합니다. 메토는 전화하지 않았다. –

+0

릴리스 모드에서 if (library.Utility.getDeviceType() == "ANDROID")이 호출하지 않는다고 생각합니까? ?? –