2013-09-01 25 views
13

sto cercando di integrare Facebook nel mio app, ma durante l'esecuzione in Android Studio, ottengo questo:Android Studio - Impossibile aprire il file PNG

Gradle: Execution failed for task ':AplikaceBeta1.0.1:mergeDebugResources'. Failed to run command: C:\Users\David\AppData\Local\Android\android-studio\sdk\build-tools\android-4.2.2\aapt.exe s -i C:\Users\David\Desktop\facebook-android-sdk-3.5\facebook-android-sdk-3.5\samples\AplikaceBeta1.0.1Project\AplikaceBeta1.0.1\build\exploded-bundles\AplikaceBeta101ProjectLibrariesFacebookUnspecified.aar\res\drawable\com_facebook_profile_picture_blank_square.png -o C:\Users\David\Desktop\facebook-android-sdk-3.5\facebook-android-sdk-3.5\samples\AplikaceBeta1.0.1Project\AplikaceBeta1.0.1\build\res\all\debug\drawable\com_facebook_profile_picture_blank_square.png Error Code: 42 Output: C:\Users\David\Desktop\facebook-android-sdk-3.5\facebook-android-sdk-3.5\samples\AplikaceBeta1.0.1Project\AplikaceBeta1.0.1\build\exploded-bundles\AplikaceBeta101ProjectLibrariesFacebookUnspecified.aar\res\drawable\com_facebook_profile_picture_blank_square.png ERROR: Unable to open PNG file

Impossibile aprire il file PNG ... cosa ?!

Il codice è completamente uguale alla guida "Getting Started with the Facebook SDK for Android (Android Studio)". È molto semplice, questo è il mio MainActivity.java:

package com.example.aplikacebeta101; 

import android.os.Bundle; 
import android.app.Activity; 
import android.content.Intent; 
import android.widget.TextView; 
import com.facebook.*; 
import com.facebook.model.*; 

public class MainActivity extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     // start Facebook Login 
     Session.openActiveSession(this, true, new Session.StatusCallback() { 

      // callback when session changes state 
      @Override 
      public void call(Session session, SessionState state, Exception exception)    { 
      if (session.isOpened()) { 

       // make request to the /me API 
       Request.executeMeRequestAsync(session, new Request.GraphUserCallback() { 

        // callback after Graph API response with user object 
        @Override 
        public void onCompleted(GraphUser user, Response response) { 
         if (user != null) { 
          TextView welcome = (TextView) findViewById(R.id.welcome); 
          welcome.setText("Hello " + user.getName() + "!"); 
         } 
        } 
       }); 
      } 
     } 
    }); 
} 

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data); 
} 

} 

Qualche idea? Lo so, Android Studio è ancora EAP, ma penso che questo non sia causato da Android Studio.

+0

Questo errore è collegato con Gradle non Android Studio. Ce l'avevo quando volevo eseguire un progetto su Windows copiato da Mac. Non so davvero perché, ma quando ho copiato lo stesso progetto da Windows a Windows, tutto era OK ... – lomza

+0

questo può essere ricondotto a percorsi troppo lunghi ... ma non sono sicuro – for3st

+0

Nella shell di Windows, se vuoi usare percorsi più lunghi di 260 caratteri, devi anteporre loro con \\? \. Questo sembra qualcosa che potremmo facilmente risolvere semplicemente cambiando leggermente le regole di costruzione. Lo menzionerò al team di Android Studio. –

risposta

57

Stai utilizzando Windows? Questo errore può verificarsi se il percorso del file di generazione generato supera la lunghezza massima del percorso di Windows (non NTFS) di caratteri. Assicurati che il percorso del tuo progetto non sia troppo lungo, usa anche i nomi brevi. More info from MS:

Maximum Path Length Limitation In the Windows API (with some exceptions discussed in the following paragraphs), the maximum length for a path is MAX_PATH, which is defined as 260 characters. A local path is structured in the following order: drive letter, colon, backslash, name components separated by backslashes, and a terminating null character. For example, the maximum path on drive D is "D:\some 256-character path string" where "" represents the invisible terminating null character for the current system codepage. (The characters < > are used here for visual clarity and cannot be part of a valid path string.)

vedere anche discussion why the limitation Windows exists.

+0

Funziona molto bene ... Grazie mille –

+0

Eccellente cattura ...... Grazie ... – Kedarnath

+0

awsme grazie mille !! Ho perso il mio lungo tempo per eseguire il debug di questo !! molte grazie !!!! funziona per me – Deepak

Problemi correlati