1

Famo.us/Angular アプリを実行し、Cordova で Android アプリを作成しようとしています。私はスターター キット ( http://famo.us/integrations/angular/#/download ) を使用しており、grunt でビルドするためにいくつかの小さな変更を加えました。

アプリをビルドするには、次のコマンドを実行します: - bower install - cordovacli build - cordovacli run

ビルドが完了し、すべて正常に動作しているようです。しかし、Android デバイスでアプリを起動すると、白いページが表示されます。ログにはこれがあります:

D/CordovaLog( 8978): file:///android_asset/www/bower_components/famous/famous-global.js: Line 434 : Uncaught TypeError: Object [object DOMWindow] has no method 'requestAnimationFrame'

E/Web Console( 8978): Uncaught TypeError: Object [object DOMWindow] has no method 'requestAnimationFrame':434

D/CordovaLog( 8978): file:///android_asset/www/bower_components/angular/angular.js: Line 3906 : Uncaught Error: [$injector:modulerr] Failed to instantiate module integrationApp due to:

D/CordovaLog( 8978): Error: [$injector:modulerr] Failed to instantiate module famous.angular due to:

D/CordovaLog( 8978): ReferenceError: famous is not defined

D/CordovaLog( 8978):     at new <anonymous> (file:///android_asset/www/bower_components/famous-angular/dist/famous-angular.js:21:28)

D/CordovaLog( 8978):     at invoke (file:///android_asset/www/bower_components/angular/angular.js:3966:17)

D/CordovaLog( 8978):     at Object.instantiate (file:///android_asset/www/bower_components/angular/angular.js:3977:23)

D/CordovaLog( 8978):     at provider (file:///android_asset/www/bower_components/angular/angular.js:3833:36)

D/CordovaLog( 8978):     at Object.provider (file:///android_asset/www/bower_components/angular/angular.js:3825:16)

D/CordovaLog( 8978):     at file:///android_asset/www/bower_components/angular/angular.js:3885:37

D/CordovaLog( 8978):     at forEach (file:///android_asset/www/bower_components/angular/angular.js:325:18)

D/CordovaLog( 8978):     at loadModules (file:///android_asset/www/bower_components/angular/angular.js:3872:5)

D/CordovaLog( 8978):     at file:///android_asset/www/bower_components/angular/angular.js:3879:40

D/CordovaLog( 8978):     at forEach (file:///android_asset/www/bower_components/angular/angular.js:325:18)

D/CordovaLog( 8978): http://errors.angularjs.org/1.2.26/$injector/modulerr?p0=famous.angular&p1=ReferenceError%3A%20famous%20is%20not%20defined%0A%20%20%20%20at%20new%20%3Canonymous%3E%20(file%3A%2F%2F%2Fandroid_asset%2Fwww%2Fbower_components%2Ffamous-angular%2Fdist%2Ffamous-angular.js%3A21%3A28)%0A%20%20%20%20at%20invoke%20(file%3A%2F%2F%2Fandroid_asset%2Fwww%2Fbower_components%2Fangular%2Fangular.js%3A3966%3A17)%0A%20%20%20%20at%20Object.instantiate%20(file%3A%2F%2F%2Fandroid_asset%2Fwww%2Fbower_components%2Fangular%2Fangular.js%3A3977%3A23)%0A%20%20%20%20at%20provider%20(file%3A%2F%2F%2Fandroid_asset%2Fwww%2Fbower_components%2Fangular%2Fangular.js%3A3833%3A36)%0A%20%20%20%20at%20Object.provider%20(file%3A%2F%2F%2Fandroid_asset%2Fwww%2Fbower_components%2Fangular%2Fangular.js%3A3825%3A16)%0A%20%20%20%20at%20file%3A%2F%2F%2Fandroid_asset%2Fwww%2Fbower_components%2Fangular%2Fangular.js%3A3885%3A37%0A%20%20%20%20at%20forEach%20(file%3A%2F%2F%2Fandroid_asset%2Fwww%2Fbower_components%2Fangular%2Fangular.js%3A325%3A18)%0A%20%20%20%20at%20loadModules%20(file%3A%2F%2F%2Fandroid_asset%2Fwww%2Fbower_components%2Fangular%2Fangular.js%3A3872%3A5)%0A%20%20%20%20at%20file%3A%2F%2F%2Fandroid_asset%2Fwww%2Fbower_components%2Fangular%2Fangular.js%3A3879%3A40%0A%20%20%20%20at%20forEach%20(file%3A%2F%2F%2Fandroid_asset%2Fwww%2Fbower_components%2Fangular%2Fangular.js%3A325%3A18)

index.html を見ると、有名なものが含まれており、パスは適切です。

<!-- bower:js -->
    <script src="bower_components/underscore/underscore.js"></script>
    <script src="bower_components/angular/angular.js"></script>
    <script src="bower_components/angular-ui-router/release/angular-ui-router.js"></script>
    <script src="bower_components/angular-touch/angular-touch.js"></script>

    <script src="bower_components/famous/famous-global.js"></script>
    <script src="bower_components/famous-angular/dist/famous-angular.js"></script>
    <!-- endbower -->

「famous-angular.js」では「famous」が見つからない気がしますが、「famous-global.js」には含まれています。

PS : Web ブラウザーでビルドすると、正常に動作します。

誰にもアイデアはありますか?共有してください。

4

1 に答える 1

2

@pasine ヘルプに感謝します。

問題の原因は、android のバージョンです。

「requestAnimationFrame」は、Android 4.4 以降のバージョンでのみサポートされています。最初のエラーから生じる次のエラー。

Android 4.4 ではこれらのエラーは発生しません。

Famo.us の互換性リマインダー:

  • iOS: 4.3+
  • Android: ジェリービーン+

この問題には回避策があります。

于 2014-10-29T15:31:54.613 に答える