Friday, May 12, 2017

Cocos2d-x installed application can't be launched on android

Leave a Comment

I am developing game using cocos2d-x I am succesfully playing it on iOS, MacOS and win32 but at the moment I am having issue trying to launch it on android. Compilation and installation are completed I just can't launch it because of the problem I can't understand/see. Could someone help or hint me about the problem?

Info: testing on real device, Android version 4.4.4., cocos2d-x-3.13.1, c++, target 4.4.2, eclipse Neon.1a Release (4.6.1), mac os.

If additional information is required I can provide it.

AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"   package="com.companyName.gameName"   android:versionCode="1"   android:versionName="1.0"   android:installLocation="auto">  <uses-sdk android:minSdkVersion="19"/> <uses-feature android:glEsVersion="0x00020000" />  <application android:label="@string/app_name"              android:icon="@drawable/icon">      <!-- Tell Cocos2dxActivity the name of our .so -->     <meta-data android:name="android.app.lib_name"                android:value="MyGame" />      <activity android:name="org.cocos2dx.cpp.AppActivity"               android:label="@string/app_name"               android:screenOrientation="landscape"               android:theme="@android:style/Theme.NoTitleBar.Fullscreen"               android:configChanges="orientation|keyboardHidden|screenSize">          <intent-filter>             <action android:name="android.intent.action.MAIN" />             <category android:name="android.intent.category.LAUNCHER" />         </intent-filter>     </activity> </application>  <supports-screens android:anyDensity="true"                   android:smallScreens="true"                   android:normalScreens="true"                   android:largeScreens="true"                   android:xlargeScreens="true"/>  <uses-permission android:name="android.permission.INTERNET"/> <permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" android:protectionLevel="signature"/> 

LogCat (warn, error, assert):

04-21 09:49:49.917: E/Watchdog(596): !@Sync 1245 04-21 09:49:52.780: W/AlarmManager(596): Set alarm: type= 3 triggerAtTime= 143810266 , called by : com.google.android.gms, intent:Intent { cmp=com.google.android.gms/.lockbox.LockboxAlarmReceiver } 04-21 09:49:59.997: W/AlarmManager(596): Set alarm: type= 3 triggerAtTime= 143817481 , called by : android, intent:Intent { act=android.intent.action.TIME_TICK flg=0x50000000 } 04-21 09:50:00.157: W/ResourceType(2304): Failure getting entry for 0x010400da (t=3 e=218) in package 0 (error -75) 04-21 09:50:00.157: E/accuweather(2304): [AccuTab_Magagine]>>> UIMK:1463 [0:0] time : 08:50 04-21 09:50:00.177: W/ResourceType(2304): Failure getting entry for 0x010400da (t=3 e=218) in package 0 (error -75) 04-21 09:50:19.917: E/Watchdog(596): !@Sync 1246 04-21 09:50:36.803: W/ContextImpl(25935): Calling a method in the system process without a qualified user: android.app.ContextImpl.startActivity:1255 android.content.ContextWrapper.startActivity:330 android.content.ContextWrapper.startActivity:330 com.samsung.android.MtpApplication.MtpReceiver$3.handleMessage:786 android.os.Handler.dispatchMessage:102  04-21 09:50:36.813: W/ContextImpl(25935): Calling a method in the system process without a qualified user: android.app.ContextImpl.startActivity:1267 android.app.ContextImpl.startActivity:1256 android.content.ContextWrapper.startActivity:330 android.content.ContextWrapper.startActivity:330 com.samsung.android.MtpApplication.MtpReceiver$3.handleMessage:786  04-21 09:50:37.033: W/ActivityManager(596): mDVFSHelper.acquire() 04-21 09:50:37.043: E/MTPRx(25935): started activity for popup 04-21 09:50:37.154: W/ApplicationPackageManager(25935): getCSCPackageItemText() 04-21 09:50:37.204: E/SettingsReceiverActivity(25935): PREF_DONT_ASK_AGAIN : true 04-21 09:50:37.214: W/InputMethodManagerService(596): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@42ef9528 attribute=null, token = android.os.BinderProxy@42a655d8 04-21 09:50:38.084: W/ApplicationPackageManager(596): getCSCPackageItemText() 04-21 09:50:40.036: W/ActivityManager(596): mDVFSHelper.release() 04-21 09:50:49.916: E/Watchdog(596): !@Sync 1247 04-21 09:50:52.789: W/AlarmManager(596): Set alarm: type= 3 triggerAtTime= 144530276 , called by : android, intent:Intent { act=android.net.ConnectivityService.action.PKT_CNT_SAMPLE_INTERVAL_ELAPSED flg=0x4000000 } 04-21 09:50:52.849: W/AlarmManager(596): Set alarm: type= 3 triggerAtTime= 143870336 , called by : com.google.android.gms, intent:Intent { cmp=com.google.android.gms/.lockbox.LockboxAlarmReceiver } 04-21 09:50:59.996: W/AlarmManager(596): Set alarm: type= 3 triggerAtTime= 143877482 , called by : android, intent:Intent { act=android.intent.action.TIME_TICK flg=0x50000000 } 04-21 09:51:00.076: W/ResourceType(2304): Failure getting entry for 0x010400da (t=3 e=218) in package 0 (error -75) 04-21 09:51:00.076: E/accuweather(2304): [AccuTab_Magagine]>>> UIMK:1463 [0:0] time : 08:51 04-21 09:51:00.096: W/ResourceType(2304): Failure getting entry for 0x010400da (t=3 e=218) in package 0 (error -75) 04-21 09:51:03.719: E/memtrack(26128): Couldn't load memtrack module (No such file or directory) 04-21 09:51:03.719: E/android.os.Debug(26128): failed to load memtrack module: -2 04-21 09:51:03.900: W/ActivityManager(596): No content provider found for permission revoke: file:///data/local/tmp/MyGame.apk 04-21 09:51:19.915: E/Watchdog(596): !@Sync 1248 04-21 09:51:30.275: W/ApplicationPackageManager(25304): getCSCPackageItemText() 04-21 09:51:42.527: W/ActivityManager(596): No content provider found for permission revoke: file:///data/local/tmp/MyGame.apk 04-21 09:51:43.588: E/PackageManager(596): parse pkg : /data/app/vmdl276537072.tmp 04-21 09:51:43.618: E/PackageManager(596): dexopt start 04-21 09:51:44.980: E/PackageManager(596): dexopt end 04-21 09:51:49.915: E/Watchdog(596): !@Sync 1249 04-21 09:51:53.068: W/AlarmManager(596): Set alarm: type= 3 triggerAtTime= 143930557 , called by : com.google.android.gms, intent:Intent { cmp=com.google.android.gms/.lockbox.LockboxAlarmReceiver } 04-21 09:51:56.111: W/PackageManager(596): verifying app can be installed or not 04-21 09:51:56.331: W/PackageManager(596): Not granting permission android.permission.INSTALL_LOCATION_PROVIDER to package com.companyName.GameName (protectionLevel=18 flags=0x8be46) 04-21 09:51:56.511: W/ApplicationPackageManager(596): getCSCPackageItemText() 04-21 09:51:56.561: W/ApplicationPackageManager(596): getCSCPackageItemText() 04-21 09:51:56.771: W/ApplicationPackageManager(596): getCSCPackageItemText() 04-21 09:51:56.781: W/ApplicationPackageManager(930): getCSCPackageItemText() 04-21 09:51:56.781: W/ApplicationPackageManager(930): getCSCPackageItemText() 04-21 09:51:56.781: E/SamsungIME(1471): mOCRHelper is null 04-21 09:51:56.941: W/ApplicationPackageManager(951): getCSCPackageItemText() 04-21 09:51:58.343: W/ApplicationPackageManager(1195): getCSCPackageItemText() 04-21 09:51:58.453: E/EdmStorageProvider(596): Admin not in database, something went wrong 04-21 09:51:59.103: W/AlarmManager(596): Set alarm: type= 0 triggerAtTime= 1492761134119 , called by : com.android.vending, intent:Intent { cmp=com.android.vending/com.google.android.finsky.services.ContentSyncService } 04-21 09:51:59.344: W/IcingInternalCorpora(1352): getNumBytesRead when not calculated. 04-21 09:51:59.354: E/memtrack(26153): Couldn't load memtrack module (No such file or directory) 04-21 09:51:59.354: E/android.os.Debug(26153): failed to load memtrack module: -2 04-21 09:51:59.504: E/Finsky(25304): [1] com.google.android.finsky.wear.bl.a(847): onConnectionFailed: ConnectionResult{statusCode=API_UNAVAILABLE, resolution=null, message=null} 04-21 09:51:59.814: W/ActivityManager(596): mDVFSHelper.acquire() 04-21 09:51:59.994: W/AlarmManager(596): Set alarm: type= 3 triggerAtTime= 143937482 , called by : android, intent:Intent { act=android.intent.action.TIME_TICK flg=0x50000000 } 04-21 09:52:00.215: W/ActivityManager(596): Permission Denial: getCurrentUser() from pid=26179, uid=10129 requires android.permission.INTERACT_ACROSS_USERS 04-21 09:52:00.245: W/ApplicationPackageManager(26179): getCSCPackageItemText() 04-21 09:52:00.275: W/ActivityManager(596): Permission Denial: getCurrentUser() from pid=26179, uid=10129 requires android.permission.INTERACT_ACROSS_USERS 04-21 09:52:00.615: E/JniHelper(26179): Failed to find static java method. Class name: (null), method name: getCocos2dxPackageName, signature: ()Ljava/lang/String;  04-21 09:52:00.615: W/ResourceType(2304): Failure getting entry for 0x010400da (t=3 e=218) in package 0 (error -75) 04-21 09:52:00.625: A/libc(26179): Fatal signal 11 (SIGSEGV) at 0xfffffff4 (code=1), thread 26179 (peFromTheIsland) 04-21 09:52:00.635: E/accuweather(2304): [AccuTab_Magagine]>>> UIMK:1463 [0:0] time : 08:52 04-21 09:52:00.645: W/ResourceType(2304): Failure getting entry for 0x010400da (t=3 e=218) in package 0 (error -75) 04-21 09:52:00.865: W/SQLiteConnectionPool(1352): A SQLiteConnection object for database '+data+data+com_google_android_gms+databases+metrics_db' was leaked!  Please fix your application to end transactions in progress properly and to close the database when it is no longer needed. 04-21 09:52:00.875: W/SQLiteConnectionPool(1352): A SQLiteConnection object for database '+data+data+com_google_android_gms+databases+help_responses_db_18' was leaked!  Please fix your application to end transactions in progress properly and to close the database when it is no longer needed. 04-21 09:52:00.875: W/SQLiteConnectionPool(1352): A SQLiteConnection object for database '+data+data+com_google_android_gms+databases+auto_complete_suggestions_db' was leaked!  Please fix your application to end transactions in progress properly and to close the database when it is no longer needed. 04-21 09:52:00.875: W/ApplicationPackageManager(1352): getCSCPackageItemText() 04-21 09:52:01.165: W/ActivityManager(596):   Force finishing activity com.companyName.GameName/org.cocos2dx.cpp.AppActivity 04-21 09:52:01.206: W/ApplicationPackageManager(596): getCSCPackageItemText() 04-21 09:52:01.216: W/ApplicationPackageManager(596): getCSCPackageItemText() 04-21 09:52:01.516: E/android.os.Debug(596): !@Dumpstate > dumpstate -k -t -z -d -m 26179 -o /data/log/dumpstate_app_error 04-21 09:52:01.596: W/ContextImpl(596): Calling a method in the system process without a qualified user: android.app.ContextImpl.sendBroadcast:1372 com.android.server.analytics.data.collection.application.CrashAnrDetector.broadcastEvent:296 com.android.server.analytics.data.collection.application.CrashAnrDetector.processDropBoxEntry:254 com.android.server.analytics.data.collection.application.CrashAnrDetector.access$100:60 com.android.server.analytics.data.collection.application.CrashAnrDetector$1.onReceive:102  04-21 09:52:01.716: W/ActivityManager(596): Activity pause timeout for ActivityRecord{425a2d00 u0 com.companyName.GameName/org.cocos2dx.cpp.AppActivity t89 f} 04-21 09:52:01.906: W/ActivityManager(596): mDVFSHelper.release() 04-21 09:52:02.577: W/ApplicationPackageManager(596): getCSCPackageItemText() 

LogCat (Filtered for application (Full)):

04-21 09:52:00.185: D/ActivityThread(26179): handleBindApplication:com.companyName.gameName 04-21 09:52:00.245: W/ApplicationPackageManager(26179): getCSCPackageItemText() 04-21 09:52:00.265: D/DisplayManager(26179): DisplayManager() 04-21 09:52:00.305: D/dalvikvm(26179): Trying to load lib /data/app-lib/com.companyName.gameName-1/libMyGame.so 0x41ccab70 04-21 09:52:00.615: E/JniHelper(26179): Failed to find static java method. Class name: (null), method name: getCocos2dxPackageName, signature: ()Ljava/lang/String;  04-21 09:52:00.625: A/libc(26179): Fatal signal 11 (SIGSEGV) at 0xfffffff4 (code=1), thread 26179 (peFromTheIsland) 

2 Answers

Answers 1

<uses-permission android:name="android.permission.INSTALL_LOCATION_PROVIDER"/> 

remove this permission from Manifest file. you can only use normal and Dangerous permission.

A third-party developer cannot grant to his/her application the permission required to install a new location provider (android.permission.INSTALL_LOCATION_PROVIDER). Only OEMs are allowed to install a new location provider.

EDIT

<permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" android:protectionLevel="signature"/> 

EDIT

check package name I see com.companyName.gameName in AndroidManifest.xml, you are running your app using package com.companyName.GameName and AppActivity is in org.cocos2dx.cpp

Answers 2

This issue was caused by extern Userdefaults in Constants. To fix it I changed (Constants.cpp):

cocos2d::UserDefault *userDefaults = cocos2d::UserDefault::getInstance(); 

Constants.hpp:

extern cocos2d::UserDefault *userDefaults; 

To:

Constants.cpp

cocos2d::UserDefault *userDefaults; 

And (AppDelegate.cpp)

userDefaults = cocos2d::UserDefault::getInstance(); 

Have not done any changes to Constants.hpp. Permissions is not required and also were was no problem with package name.

Logcat messages was not helpfull...

If You Enjoyed This, Take 5 Seconds To Share It

0 comments:

Post a Comment