我正在从 Cocos Creator V2.4.3 导出的 Android 项目构建 apk,但使用 Gradle 时出现以下错误
A problem occurred configuring project ':game'.
> java.lang.NullPointerException (no error message)
Run Code Online (Sandbox Code Playgroud)
我删除了所有android SDK、NDK并重新安装了Android Studio,然后重新更新了SDK、NDK、Build Tool。但错误仍然发生。
一些配置:
Android SDK = 23, 26, 28, 30
SDK构建工具= 30.0.3
NDK = 19.2.5345600
摇篮版本:4.10.3
Gradle插件版本:3.2.0
JDK:jdk1.8.0_281
build.gradle 看起来像这样
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.0'
// NOTE: Do not place your application dependencies here; they belong
// …
Run Code Online (Sandbox Code Playgroud) 我尝试将AdMob广告和GooglePlay IAP集成到干净的(hello world)cocos2d-js 3.5项目中.
偶尔(每5次运行)应用程序崩溃并显示下面的异常.当我集成IAP时,这种行为就开始了.清洁AdMob集成很好(或者至少被认为是).
到目前为止,我只做了Java部分(除主屏幕外没有调用cocos代码).我确实将google-play-services_lib升级到23版.
日志转储:
E/AndroidRuntime(27040): java.lang.IllegalArgumentException: null reference
E/AndroidRuntime(27040): at com.google.android.gms.common.internal.d.b(SourceFile:45)
E/AndroidRuntime(27040): at com.google.android.gms.ads.internal.g.ao.a(SourceFile:60)
E/AndroidRuntime(27040): at com.google.android.gms.ads.internal.t.b.a(SourceFile:766)
E/AndroidRuntime(27040): at com.google.android.gms.ads.internal.t.m.run(SourceFile:43)
E/AndroidRuntime(27040): at android.os.Handler.handleCallback(Handler.java:733)
E/AndroidRuntime(27040): at android.os.Handler.dispatchMessage(Handler.java:95)
E/AndroidRuntime(27040): at android.os.Looper.loop(Looper.java:149)
E/AndroidRuntime(27040): at android.app.ActivityThread.main(ActivityThread.java:5257)
E/AndroidRuntime(27040): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(27040): at java.lang.reflect.Method.invoke(Method.java:515)
E/AndroidRuntime(27040): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:788)
E/AndroidRuntime(27040): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:604)
E/AndroidRuntime(27040): at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)
任何提示?如果您发现它有用,我可以发布一些代码片段...
更新:
德米特里提到,这可能是谷歌方面的错误.我可以在崩溃前看到这些安全警告.它表明导致广告的错误是"坦克世界"
W/Ads (21547): JS: The page at https://googleads.g.doubleclick.net/mads/gma displayed insecure content from http://lh3.googleusercontent.com/mTcg18XIu-LbM4ovcCpet1zMpdkt1QKIZpM7RhdBpH7fjlLFvSRn56yxbh3i92FiHmjLx54rCg.
W/Ads (21547): (https://googleads.g.doubleclick.net/mads/gma:0)
I/chromium(21547): [INFO:CONSOLE(0)] "The page at https://googleads.g.doubleclick.net/mads/gma displayed insecure content from …
Run Code Online (Sandbox Code Playgroud) 我使用以下代码来显示自定义ttf字体:
ml.score = cc.LabelTTF.create(ml.totalPoints.toString(), "fonts/American Typewriter.ttf", 60);
ml.score.setPosition(ml.size.width/2,BS*0.6);
ml.score.retain();
ml.score.setColor(cc.color(200,160,70));
ml.scoreBar.addChild(ml.score, 5);
Run Code Online (Sandbox Code Playgroud)
在Android中,不显示字体.在Chrome/Firefox浏览器中它是.
我正在使用cocos2d-js 30RC.
笏?
我正在将cocos2d-js游戏集成到本机iOS应用程序中.
在某些时候,我在ios本机应用程序中有一个Javascript函数,代码如下:
var txt = jsb.fileUtils.getStringFromFile("project.json");
Run Code Online (Sandbox Code Playgroud)
但是我project.json
在Document文件夹而不是我的包中.所以我需要在这个Javascript文件中获取我的文档文件夹路径,使其具有以下内容:
var myPath = SomeFunctionToGetPath();
var txt = jsb.fileUtils.getStringFromFile("myPath/project.json");
Run Code Online (Sandbox Code Playgroud)
任何人都知道我应该如何实施SomeFunctionToGetPath
?
谢谢你的帮助.
这就是它在chrome和mozilla中的外观
我正在使用cocos2dx-3.10
我用过这段代码
var TestLayer = cc.LayerColor.extend({
ctor: function () {
this._super(cc.color(255, 255, 255));
var lineUp = new cc.DrawNode();
lineUp.drawSegment(cc.p(0, 0), cc.p(200, 0), 0.5, cc.color(80, 80, 80));
lineUp.setPosition(cc.p(this.width / 2 - 100, this.height / 2 + 13));
this.addChild(lineUp);
var lineDown = new cc.DrawNode();
lineDown.drawSegment(cc.p(0, 0), cc.p(200, 0), 0.5, cc.color(80, 80, 80));
lineDown.setPosition(cc.p(this.width / 2 - 100, this.height / 2 - 17));
this.addChild(lineDown);
var label = new cc.LabelTTF("Lorem Ipsum", "Arial", 30);
label.setColor(cc.color(0, 0, 0));
label.setPosition(cc.p(this.width / 2, this.height / 2));
this.addChild(label); …
Run Code Online (Sandbox Code Playgroud) 我正在使用Cocos Creator开发适用于Android和iOS平台的游戏.游戏规模小,图形元素少.
我发现这个游戏的APK和IPA文件大小是11.5 MB.我认为这些文件(APK或IPA)必须包含一些不必要的文件.Asset文件夹的大小仅为5 MB.
我有以下问题:
如何在Cocos Creator中减少iOS和Android平台的游戏大小?
是否有任何优化技术可以减少艺术资产的规模(不影响质量)?
我将不胜感激任何关于这个主题的建议/想法.谢谢.
上下文:
我正在创建一个Cocos2d-JS游戏.我已经创建了项目并处于开发阶段.
我可以在Console中运行cocos run -p web
或cocos run -p web --source-map
从项目目录运行.这些命令有效,允许我运行和测试我的项目.
问题:
简单地说:cocos2d-JSB编译器没有选择我所做的代码更改.我最近更改过的旧代码仍然存在于新编译的cocos2d项目中.我无法检测到我已经对已编译的类文件所做的更改.
技术
问题:技术问题:cocos2d-js编译器(来自终端/控制台)未正确复制修改后的.js文件.以前版本的.js文件以某种方式保留在localhost-web-server中.localhost由运行cocos2d应用程序的Python脚本维护.
(我用的打字稿写我的大部分代码.ts
和编译下来到JavaScript .js
与.js.map
运行科科编译器之前,我肯定是打字稿编译下来的Javascript)
更多:
在我的Chrome浏览器中使用Javascript控制台时,我可以看到我的.ts文件在本地主机中可见.我也可以通过这种方式查看我的.js文件,并确认代码尚未更新.
问:
我如何能"力"的cocos compile
或cocos run
命令来覆盖旧的任何.js文件,而不是"智能"留住老文件?
是否有可能--source-map
使run
命令强制重新构建?
我想在Apple的Xcode中制作一个'Clean Build',但是对于cocos2d-js.我怎样才能做到这一点?
如果这些都不可能,我在哪里可以找到localhost使用的构建/运行目录,这样我可以自己手动更新.js文件?
我正在尝试将高分整数保存到用户的Android系统中,以便它可以在所有游戏体验中持续存在.
我已经读过使用Cocos2D-X可以使用,NSUserDefaults
但Cocos2D-JS API似乎根本没有.
任何人都有这方面的经验,有没有其他有效的方法来解决这个问题?
我尝试使用来自cocos2d-js扩展的ScrollView,TableView,我注意到它无法看到!
我也尝试从该示例创建一个类,但我需要使用本机类!
我正在cocos2d-js中构建一个应用程序,我在听键盘事件时遇到了问题.我希望存在一个名为setKeyboardEnabled的方法,但是当我调用它时,我得到一个错误,即setKeyboardEnabled不是函数,我错过了什么吗?
var AnimationLayer = cc.Layer.extend({
ctor : function() {
this._super();
this.setKeyboardEnabled(true);
},
onKeyDown : function(key) {
cc.log("action");
}
...
...
)}
Run Code Online (Sandbox Code Playgroud)
当我尝试听触摸事件时,会发生同样的事情.
cocos2d-js ×10
cocos2d-x ×7
javascript ×5
android ×4
ios ×3
admob ×1
apk ×1
cocoscreator ×1
directory ×1
gradle ×1
html5-canvas ×1
python ×1
touch ×1