Crosswalk plugin error: "requires the crosswalk project service to work please install it from the app store, then restart"

Crosswalk plugin error: "requires the crosswalk project service to work please install it from the app store, then restart"

所以我安装了人行横道插件,开发时一切顺利。然后我们将我们的应用构建(android 中的 apk)提供给一些用户在发布之前进行测试,我们收到错误消息:"requires the crosswalk project service to work please install it from the app store, then restart"

我们注意到这可能只是 Android 低于 4.2 的错误,所以有任何 workaround/solution 吗?

新答案:

Android 构建

关于如何为 android 构建带和不带人行横道的离子应用程序的分步教程。

非人行横道建筑

  1. 要为 Android 生成发布版本,首先转到离子应用程序根目录。

  2. 然后我们可以使用下面的cordova终端命令:

    #Generates the *-unsigned.apk file
    cordova build --release android
    
  3. 转到目录 platforms/android/build/outputs/apk,我们可以在其中找到生成的未签名 APK 文件。 非常重要:如果过去的命令生成超过 1 个 apk,请使用其名称中包含 arm 的那个,例如:android-armv7-release-unsigned.apk.

  4. 使用JDK自带的keytool命令生成私钥。如果找不到此工具,请参阅安装指南(如果此命令在 windows 上不起作用,请在 linux 或 mac 上创建它并通过 dropbox 传递 *.keystore 文件):

    #This generates key.keystore file
     keytool -genkey -v -keystore key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
    
  5. 要对未签名的 APK 进行签名,运行 jarsigner 工具也包含在 JDK 中。 jarsigner 签署 unsigned.apk 文件(如果 jarsigner 未被识别为命令,只需将其添加到环境变量 PATH,通常文件位于 java bin 所在的位置):

     #Remember to rename key.keystore and unsigned.apk by whatever this files are named in your system
     jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore key.keystore unsigned.apk alias_name
    
  6. 最后,我们需要 运行 zip 对齐工具来优化 APK(如果 zipalign 无法识别,请尝试将其添加到 windows 的环境变量 PATH;通常是可以在 your/path/to/Android/sdk/build-tools/VERSION/zipalign)

    中找到 zipalign 工具
    #If the zipalign isn't recognize try ./zipalign for gitbash or unix based systems 
    zipalign -v 4 unsigned.apk YouAppName.apk
    

如果您的应用有人行横道

预构建说明

在 Android 上,该应用程序依赖于 Crosswalk 浏览器,您必须在生成平台文件后在构建之前链接安装

  1. 您需要添加相应的ios平台并安装插件

    # ionic platform add android
    
  2. 添加人行横道插件和所需的依赖项

    # ionic browser add crosswalk
    
  3. 记得在构建之前在 GenyMotion 的模拟器中测试应用程序

    # ionic run android
    
构建说明
  1. 进入APP根目录下的key store目录

  2. 要为 Android 生成发布版本,首先转到离子应用程序根目录。

  3. 然后我们可以使用下面的cordova终端命令:

    #Generates the *-unsigned.apk file
    cordova build --release android
    
  4. 转到目录 platforms/android/build/outputs/apk,我们可以在其中找到生成的未签名 APK 文件。 非常重要:如果过去的命令生成超过 1 个 apk,请使用其名称中包含 arm 的那个,例如:android-armv7-release-unsigned.apk,除非您正在为 x86 设备构建。

  5. 用于签名应用程序的有效密钥已生成并可在项目根目录的 android 密钥库目录中使用。

  6. 要对未签名的 APK 进行签名,运行 jarsigner 工具也包含在 JDK 中。 jarsigner 签署 unsigned.apk 文件(如果 jarsigner 未被识别为命令,只需将其添加到环境变量 PATH,通常文件位于 java bin 所在的位置):

     #CD to the keystore directory
     cd android-keystore
    
     # Sign the generated apk
     #Remember to rename unsigned.apk by whatever this files are named in your system
     jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore key.keystore ../APP/platforms/android/build/outputs/apk/unsigned.apk azanglogold
    
  7. 最后,我们需要 运行 zip 对齐工具来优化 APK(如果 zipalign 无法识别,请尝试将其添加到 windows 的环境变量 PATH;通常是可以在 your/path/to/Android/sdk/build-tools/VERSION/zipalign)

    中找到 zipalign 工具
    # If the zipalign isn't recognize try ./zipalign for gitbash or unix based systems
    # Remember to rename unsigned.apk by whatever this files are named in your system
    zipalign -v 4 ../APP/platforms/android/build/outputs/apk/unsigned.apk AZSeguros.apk
    


旧答案:

很久以前我也遇到过同样的错误。当您为 android 的 apk 版本构建时,请遵循此说明,这将解决问题(注意点 3,这是解决方案中的特定问题):

使用 Ionic

构建签名 apk 以在 android 中发布
  1. 要为 Android 生成发布版本,首先转到离子应用程序根目录。

  2. 然后我们可以使用下面的cordova终端命令:

    #Generates the *-unsigned.apk file
    cordova build --release android
    
  3. 转到目录 platforms/android/build/outputs/apk,我们可以在其中找到生成的未签名 APK 文件。 非常重要:如果过去的命令生成超过 1 个 apk,请使用其名称中包含 arm 的那个,例如:android-armv7-release-unsigned.apk.

  4. 使用JDK自带的keytool命令生成私钥。如果找不到此工具,请参阅安装指南(如果此命令在 windows 上不起作用,请在 linux 或 mac 上创建它并通过 dropbox 传递 *.keystore 文件):

    #This generates key.keystore file
     keytool -genkey -v -keystore key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
    
  5. 要对未签名的 APK 进行签名,运行 jarsigner 工具也包含在 JDK 中。 jarsigner 签署 unsigned.apk 文件(如果 jarsigner 未被识别为命令,只需将其添加到环境变量 PATH,通常文件位于 java bin 所在的位置):

     #Remember to rename key.keystore and unsigned.apk by whatever this files are named in your system
     jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore key.keystore unsigned.apk alias_name
    
  6. 最后,我们需要 运行 zip 对齐工具来优化 APK(如果 zipalign 无法识别,请尝试将其添加到 windows 的环境变量 PATH;通常是可以在 your/path/to/Android/sdk/build-tools/VERSION/zipalign)

    中找到 zipalign 工具
    #If the zipalign isn't recognize try ./zipalign for gitbash or unix based systems 
    zipalign -v 4 unsigned.apk YouAppName.apk
    

您在哪些设备上收到错误消息,您是否使用了 sqlite 插件?

x86 64 位设备(例如 Samsung Galaxy S6)上的 cordova 和 sqlite-plugin 存在一个已知问题。您可以在此处找到此问题的解决方案:https://github.com/litehelpers/Cordova-sqlite-storage/issues/336