於Android 中沒法跑,Eclipse 中沒法Build

我是直接用CREATOR 的Build->Compile 然後再把APK 放到手機上跑的
我只放了個場景,上面有一個LABEL,也沒有SCRIPT
在ANDROID 手機上一跑就黑屏,用ADB 進去看,只是不停出現以下的Debug Log.

04-26 01:16:13.478: D/cocos2d-x debug info(12151): Success to load scene: db://assets/scene/splash.fire

另外,
我構建了項目之後,打算到ECLIPSE 自己BUILD 來看看
但發現在build\jsb-default\frameworks\runtime-src\proj.android\ 裡面沒有我的ASSET
我是要手動添加?
而且在Eclipse 中總是無法編譯main.cpp (我是第一次碰到jni 的東西,之前用Unity 都沒有需要)

(有沒有完整教學把Project 移到Eclipse 去Build 啊…)

感謝!

目前安卓平台我们支持用 Creator 直接打包,不支持 Eclipse(需要对项目做一些修改,不知道有没有人知道具体的修改步骤?),Android-studio 会支持

如果只是要看 log 信息的话,不需要用 eclipse 编译。
连接手机到电脑,eclipse 的 LogCat 就能看到手机的输出信息了。

@shwuhk

在ANDROID 手機上一跑就黑屏

能否提供测试工程以便重新并解决问题?

我構建了項目之後,打算到ECLIPSE 自己BUILD 來看看

在 Eclipse 中要编译 native C++ 代码,需要用到 CDT 插件,还要修改 Eclipse 工程的配置。另外,assets 目录也需要增加命令行配置来拷贝。对没有接触过 jni 的开发者来说比较复杂。
推荐使用 Creator 中默认的编译与运行功能。

感謝各位回覆
我包裡是有兩個場景和一堆SCRIPT
但起始場景裡沒掛任何SCRIPT的
只有放一個LABEL 就這樣(這其實就應該跟新工程無異吧…)
我等等會從新工程再BUILD 來試試看
還是不行再來問~~

由於我是從UNITY 過來的
我們已有一些ANDROID 的LIBRARY
所以才想把COCOS 的PROJECT 拉到ECLIPSE 去BUILD
用來IMPORT 其他ECLIPSE PROJECT 的
如果不能在ECLIPSE BUILD,那CREATOR 有沒有辦法直接IMPORT 到其他ANDROID PROJECT(UNITY 是可以的)
另外想問一下,有沒有教學怎樣在Creator 裡面調用Java 的東西?

感謝

由于 Creator 编译与打包 Android apk 是通过 Ant 实现的,所以如果要在 Creator 构建的项目中链接第三方 Android 库工程,需要根据 Ant 的规则修改构建生成的项目中 project.android/build.xml 这个文件。

我已记录此问题,后续对这个工作流程进行优化。谢谢你的反馈!

感謝你的回覆

因為一般的開發都會需要接入第三方的包
因此最好是能夠讓我們在ECLIPSE 中編譯,這樣彈性最高

另外想問一下,有沒有教學怎樣在Creator 裡面調用Java 的東西?(還是暫時不支援?)

最後我發現,
應該是我的Script 用了ES6 的東西
我用了Promise 然而手機好像不支援
因為我在CHROME 跑是沒事的
到手機就跑不了,只會黑屏並不停自動重載場景
能確認一下,Android 手機的JS 是不是未能支援ES6?

而且想反映一件事,在ANDROID 中十分難DEBUG
如果自己的JS SCRIPT 有ERROR 的話(例如沒REQUIRE 就用了別的套件),這都不會輸出錯誤訊息,而直接幫你不停RELOAD 場景
DEBUG 變得非常難
04-27 07:20:33.063: D/cocos2d-x debug info(10589): Success to load scene: db://assets/scene/splash.fire
04-27 07:20:33.063: D/cocos2d-x debug info(10589): assets/src/jsb_polyfill.js:6025:TypeError: children is null
04-27 07:20:33.079: D/cocos2d-x debug info(10589): assets/src/jsb_polyfill.js:6388:TypeError: children is null
(然後不停REPEAT 這三句)

而且,我剛又遇到另一個問題
在Android 跑時不能解我的JSON,但明明在CHROME 是沒問題的
據LOGCAT 輸出,我的JSON 是這樣的

{“payload”:"{“data”:{“has_new_version”:false,“package_id”:“com.test.test”},“notifications”:[]}",“code”:“success”,“time”:1461712026,“result”:true,“hash”:“990b4c43369d679842c056b0f625442f”}

接著LOGCAT 報錯
assets/src/project.dev.js:206:SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data

這會是甚麼原因?
謝謝

这个报错应该是 json 文件的编码问题。是不是你的 json 文件使用了 UTF-8 带 BOM 头?试一下这样能不能解决:

  1. 在文本编辑器中打开 json 文件
  2. 将光标放到文件开头第一个字符的位置,然后按几次退格键。
  3. 如果文本编辑器显示文件被改动了,那说明文件头有不可见的字符被删除了。保存一下应该就可以了。

可以使用 JS to JAVA Reflection:http://www.cocos.com/doc/article/index?type=cocos2d-x&url=/doc/cocos-docs-master/manual/framework/cocos2d-js/catalog/../../html5/v3/reflection/zh.md

主要是 Eclipse 不支持 C++ 调试,我们后续会以 Android Studio 为主要支持对象

你的脚本代码中的 ES6 语法会自动被 transpile 为标准 ES5 的语法(使用 Babel),所以应该不是这个问题,需要定位一下哪里有问题。

估计和 Mobile 上遇到的问题一样。另外,原生调试安卓的确非常不友好,建议先试用 VS / Xcode 调试桌面版本。

Android studio 什么时间能用上呢???

Android Studio 没问题啊