Verpacken android facebook sdk als apklib mit maven

Ich habe maven-android-plugin 3.0.0-alpha-7 verwendet, um das facebook android sdk als apklib zu verpacken. Es sieht aus wie das:

$ unzip sdk-1.0-SNAPSHOT.apklib Archive: sdk-1.0-SNAPSHOT.apklib creating: META-INF/ inflating: META-INF/MANIFEST.MF inflating: AndroidManifest.xml creating: assets/ creating: res/ creating: res/drawable/ creating: res/drawable-hdpi/ creating: res/drawable-ldpi/ inflating: res/drawable/facebook_icon.png inflating: res/drawable-hdpi/facebook_icon.png inflating: res/drawable-ldpi/facebook_icon.png creating: src/ creating: src/com/ creating: src/com/facebook/ creating: src/com/facebook/android/ inflating: src/com/facebook/android/AsyncFacebookRunner.java inflating: src/com/facebook/android/DialogError.java inflating: src/com/facebook/android/Facebook.java inflating: src/com/facebook/android/FacebookError.java inflating: src/com/facebook/android/FbDialog.java inflating: src/com/facebook/android/Util.java 

Ich installiere es dann in einem lokalen Repo für mein Projekt und schließe es als Maven dep … und laufe den Build, den ich bekomme:

 $ mvn clean package android:deploy [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building myproject 2.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ myproject-android --- [INFO] Deleting /Users/user/dev/projects/company/myproject-android/target [INFO] [INFO] --- maven-android-plugin:3.0.0-alpha-7:generate-sources (default-generate-sources) @ myproject-android --- [DEBUG] Expanding: /Users/user/.m2/repository/com/facebook/android/sdk/1.0-SNAPSHOT/sdk-1.0-SNAPSHOT.apklib into /Users/user/dev/projects/company/myproject-android/target/unpack/apklibs/com.facebook.android_sdk_apklib_1.0-SNAPSHOT [DEBUG] expand complete [INFO] ANDROID-904-002: Found aidl files: Count = 0 [INFO] ANDROID-904-002: Found aidl files: Count = 0 [INFO] ANDROID-904-002: Found aidl files: Count = 0 [INFO] /Users/user/dev/libs/android-sdk-mac_x86/platform-tools/aapt [package, -m, -J, /Users/user/dev/projects/company/myproject-android/target/generated-sources/r, -M, /Users/user/dev/projects/company/myproject-android/AndroidManifest.xml, -S, /Users/user/dev/projects/company/myproject-android/res, -S, /Users/user/dev/projects/company/myproject-android/target/unpack/apklibs/com.facebook.android_sdk_apklib_1.0-SNAPSHOT/res, --auto-add-overlay, -A, /Users/user/dev/projects/company/myproject-android/assets, -I, /Users/user/dev/libs/android-sdk-mac_x86/platforms/android-10/android.jar] [INFO] /Users/user/dev/libs/android-sdk-mac_x86/platform-tools/aapt [package, -m, -J, /Users/user/dev/projects/company/myproject-android/target/generated-sources/r, --custom-package, com.facebook, -M, /Users/user/dev/projects/company/myproject-android/AndroidManifest.xml, -S, /Users/user/dev/projects/company/myproject-android/res, -S, /Users/user/dev/projects/company/myproject-android/target/unpack/apklibs/com.facebook.android_sdk_apklib_1.0-SNAPSHOT/res, --auto-add-overlay, -A, /Users/user/dev/projects/company/myproject-android/assets, -A, /Users/user/dev/projects/company/myproject-android/target/unpack/apklibs/com.facebook.android_sdk_apklib_1.0-SNAPSHOT/assets, -I, /Users/user/dev/libs/android-sdk-mac_x86/platforms/android-10/android.jar] [INFO] [INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ myproject-android --- [debug] execute contextualize [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] skip non existing resourceDirectory /Users/user/dev/projects/company/myproject-android/src/main/resources [INFO] skip non existing resourceDirectory /Users/user/dev/projects/company/myproject-android/target/generated-sources/extracted-dependencies/src/main/resources [INFO] Copying 0 resource [INFO] [INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ myproject-android --- [INFO] Compiling 141 source files to /Users/user/dev/projects/company/myproject-android/target/classes [INFO] ------------------------------------------------------------- [ERROR] COMPILATION ERROR : [INFO] ------------------------------------------------------------- [ERROR] /Users/user/dev/projects/company/myproject-android/target/unpack/apklibs/com.facebook.android_sdk_apklib_1.0-SNAPSHOT/src/com/facebook/android/FbDialog.java:[95,17] package R does not exist [INFO] 1 error [INFO] ------------------------------------------------------------- [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Skipping myproject [INFO] This project has been banned from the build due to previous failures. [INFO] ------------------------------------------------------------------------ [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 6.279s [INFO] Finished at: Wed Sep 21 09:32:40 PDT 2011 [INFO] Final Memory: 13M/81M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project myproject-android: Compilation failure [ERROR] /Users/user/dev/projects/company/myproject-android/target/unpack/apklibs/com.facebook.android_sdk_apklib_1.0-SNAPSHOT/src/com/facebook/android/FbDialog.java:[95,17] package R does not exist [ERROR] -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException 

Ich sehe die R-Dateien werden generiert und haben den richtigen Inhalt:

 $ find target/generated-sources/r/ target/generated-sources/r/ target/generated-sources/r//com target/generated-sources/r//com/facebook target/generated-sources/r//com/facebook/Manifest.java target/generated-sources/r//com/facebook/R.java target/generated-sources/r//com/company target/generated-sources/r//com/company/myproject target/generated-sources/r//com/company/myproject/droid target/generated-sources/r//com/company/myproject/droid/Manifest.java target/generated-sources/r//com/company/myproject/droid/R.java 

Was fehlt mir, um die R-Dateien in den Kompilierungsschritt zu bringen?

  • Android: Revision 21 erscheint nicht im SDK Manager
  • Wie finde ich die Version von Android SDK im Computer installiert?
  • Android Studio: Fail to parse SDK kann die Verzeichnis-Add-ons fehlen
  • Adt eclipse bundle 02-07-2014 UPDATE
  • Wie deaktiviere ich Facebook Single Sign auf für android - Facebook-android-sdk
  • 32bit oder 64bit Android SDK auf Windows 64bit OS?
  • Java fehlt erforderlicher quellordner: 'gen'
  • Lesen von Gmail-Mails mit Android SDK
  • One Solution collect form web for “Verpacken android facebook sdk als apklib mit maven”

    Ich habe das schon für dich gemacht: https://github.com/casidiablo/android-facebook

    Herunterladen

    Neueste Version verfügbar ist 1.5 :

    • JAR herunterladen
    • Sources herunterladen
    • Herunterladen Javadoc

    Maven

    Sie können es von Maven verwenden, indem Sie diese Abhängigkeit und das Repository einschließen:

     <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> ... <dependencies> ... <dependency> <groupId>com.codeslap</groupId> <artifactId>android-facebook</artifactId> <version>1.6</version> <scope>compile</scope> </dependency> </dependencies> <repositories> <repository> <id>codeslap</id> <url>http://casidiablo.github.com/codeslap-maven/repository/</url> </repository> </repositories> </project> 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.