Cocos2d-x v3.12 released!

Still no Android studio support :frowning:
Cant even just add c++ support for coding? No run/debug, just auto complete
so atleast we can edit project which have sdkbox implementation.

Js is not available now on Tizen platform, only Lua and C++ are supported.

Hi, in near future, will JS support Tizen platform??
thanks :slight_smile:

@dbest10 yep, it supports IPV6 only, but it may have issue with CURL lib, can refer to this issue

@pbs0512 i met the issue if i changed tests/cpp-tests/proj.android/project.properties from target=android-10 to target=android-19. It is possible that different Android OS has different symbols. And websockets uses bsd_signal that are removed in higher Android OS. So i suggest you downloading Android 10.

@smitpatel88 will try to support in in 3.13, we are waiting a good supporting of Android Studio.

Thanks zhangxm. Unfortunately it could mean that my app may still be rejected by Apple.

@pbs0512 i found that this error is caused by NDK compatibility issue, can refer to this issue for detail information.

Indeed, the arch-arm/usr/include/signal.h header up to "android-19" contained:

/* differentiater between sysv and bsd behaviour 8*/
extern __sighandler_t sysv_signal(int, __sighandler_t);
extern __sighandler_t bsd_signal(int, __sighandler_t);

/* the default is bsd */
static __inline__ __sighandler_t signal(int s, __sighandler_t f)
{
    return bsd_signal(s,f);
}
but starting at "android-21" (there is no android-20) has just:

extern sighandler_t signal(int, sighandler_t);
So it looks that stdlib would have to use different symbols depending on which version of Android SDK it was targeting.
1 Like

So recommended configuration for android is:
android sdk:10
ndk:r11c
?
I think that cocos command line should check it and do not allow compile in different configuration

Regards,
CHP

1 Like

Hi guys
I tried to compile the “HelloWorld” project with:

cocos run -s . -p android --ap android-23 -m release

And I get this errors:

-compile:
        [javac] Compiling 28 source files to /home/drk/cocos2d-projects/TEST/cocos2d/cocos/platform/android/java/bin/classes
        [javac] /home/drk/cocos2d-projects/TEST/cocos2d/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxDownloader.java:9: error: package org.apache.http does not exist
        [javac] import org.apache.http.Header;
        [javac]                       ^
        [javac] /home/drk/cocos2d-projects/TEST/cocos2d/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxDownloader.java:10: error: package org.apache.http.message does not exist
        [javac] import org.apache.http.message.BasicHeader;
        [javac]                               ^
        [javac] /home/drk/cocos2d-projects/TEST/cocos2d/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxDownloader.java:47: error: cannot find symbol
        [javac]     public void onFailure(int i, Header[] headers, byte[] errorResponse, Throwable throwable) {
        [javac]                                  ^
        [javac]   symbol:   class Header
        [javac]   location: class DataTaskHandler
        [javac] /home/drk/cocos2d-projects/TEST/cocos2d/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxDownloader.java:57: error: cannot find symbol
        [javac]     public void onSuccess(int i, Header[] headers, byte[] binaryData) {
        [javac]                                  ^
        [javac]   symbol:   class Header
        [javac]   location: class DataTaskHandler
        [javac] /home/drk/cocos2d-projects/TEST/cocos2d/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxDownloader.java:106: error: cannot find symbol
        [javac]     public void onFailure(int i, Header[] headers, Throwable throwable, File file) {
        [javac]                                  ^
        [javac]   symbol:   class Header
        [javac]   location: class FileTaskHandler
        [javac] /home/drk/cocos2d-projects/TEST/cocos2d/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxDownloader.java:116: error: cannot find symbol
        [javac]     public void onSuccess(int i, Header[] headers, File file) {
        [javac]                                  ^
        [javac]   symbol:   class Header
        [javac]   location: class FileTaskHandler
        [javac] /home/drk/cocos2d-projects/TEST/cocos2d/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxDownloader.java:253: error: cannot find symbol
        [javac]                     Header[] headers = null;
        [javac]                     ^
        [javac]   symbol: class Header
        [javac] /home/drk/cocos2d-projects/TEST/cocos2d/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxDownloader.java:257: error: cannot find symbol
        [javac]                         List<Header> list = new ArrayList<Header>();
        [javac]                              ^
        [javac]   symbol: class Header
        [javac] /home/drk/cocos2d-projects/TEST/cocos2d/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxDownloader.java:257: error: cannot find symbol
        [javac]                         List<Header> list = new ArrayList<Header>();
        [javac]                                                           ^
        [javac]   symbol: class Header
        [javac] /home/drk/cocos2d-projects/TEST/cocos2d/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxDownloader.java:258: error: cannot find symbol
        [javac]                         list.add(new BasicHeader("Range", "bytes=" + fileLen + "-"));
        [javac]                                      ^
        [javac]   symbol: class BasicHeader
        [javac] /home/drk/cocos2d-projects/TEST/cocos2d/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxDownloader.java:259: error: cannot find symbol
        [javac]                         headers = list.toArray(new Header[list.size()]);
        [javac]                                                    ^
        [javac]   symbol: class Header
        [javac] /home/drk/cocos2d-projects/TEST/cocos2d/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxDownloader.java:261: error: cannot access HttpEntity
        [javac]                     task.handle = downloader._httpClient.get(Cocos2dxHelper.getActivity(), url, headers, null, task.handler);
        [javac]                                                         ^
        [javac]   class file for org.apache.http.HttpEntity not found
        [javac] Note: Some input files use or override a deprecated API.
        [javac] Note: Recompile with -Xlint:deprecation for details.
        [javac] Note: /home/drk/cocos2d-projects/TEST/cocos2d/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxDownloader.java uses unchecked or unsafe operations.
        [javac] Note: Recompile with -Xlint:unchecked for details.
        [javac] 12 errors

I did a successful build with

cocos run -s . -p android --ap android-18

I’m using NDK 11c

Hi, in near future, will JS support Tizen platform??
thanks smile

You need to add

useLibrary  'org.apache.http.legacy'

under “android” node in the build.gradle of the lib project if the targetSDK in gradle script is 23 or above.

@na299 what build.gradle should I modify?
I modified cocos2d/cocos/platform/android/libcocos2dx/build.gradle

And now looks like this:

apply plugin: 'com.android.library'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"
    useLibrary 'org.apache.http.legacy'

    defaultConfig {
        minSdkVersion 10
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }

    sourceSets.main {
        aidl.srcDir "../java/src"
        java.srcDir "../java/src"
        manifest.srcFile "AndroidManifest.xml"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: '../java/libs', include: ['*.jar'])
}

However I have the problem yet!

yeah, that is the file I was talking about.
But now I don’t know why you are still getting the error… Sorry…

–UPDATE–
Ah, I see, you are using Eclipse project! not android studio…
If you have Android studio, try with parameter: --android-studio in your build command:

cocos run -s . -p android --ap android-23 -m release --android-studio

I don’t know how to include the legacy library in ADT project with Eclipse.

@na299

Yep, by now I’m using the proj.android project.
I’m not using Android Studio! It is required to use --android-studio or it is sufficient to install gradle?
Should I report this problem on https://github.com/cocos2d/cocos2d-x/issues?

For now I’m using the solution proposed in this topic:

I can now build with:

cocos run -s . -p android --ap android-23 -m release
1 Like

I think that is the solution for ADT project…

I’m facing this error on xcode v6.1.1:
/cocos2d/cocos/platform/ios/CCDevice-ios.mm Line 348:

Cannot initialize a parameter of type 'NSStringDrawingOptions' with an rvalue of type 'long'

dim = [str boundingRectWithSize:CGSizeMake(textRect.width, textRect.height)
  options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading)
  context:nil].size;

@CrazyHappyGame Indeed Android break compatibility usually, we can not make sure which version has the problem, for example, please refer to this issue.

Why remove “getOrderOfArrival”

If removed this function, should using stable_sort in Node::sortAllChildren!!?

like Sort Issue

I get this error when i build for ios

“_CTFramesetterCreateWithAttributedString”, referenced from:

  _calculateShrinkedSizeForString(NSAttributedString**, objc_object*, CGSize, bool, int&) in libcocos2d iOS.a(CCDevice-ios.o)

“_CTFramesetterSuggestFrameSizeWithConstraints”, referenced from:

  _calculateShrinkedSizeForString(NSAttributedString**, objc_object*, CGSize, bool, int&) in libcocos2d iOS.a(CCDevice-ios.o)

ld: symbol(s) not found for architecture arm64

clang: error: linker command failed with exit code 1 (use -v to see invocation)

I upgraded cocos by replacing the cocos2d folder… this gave the above error.

I fixed it by creating a new project and and then replacing classes and resources folder. It worked fine.

Thanks