在使用cygwin编译我的cocos2d-x项目时,我收到以下警告.
`/cygdrive/e/project/MyGame/proj.android `
/cygdrive/e/android-ndk-r8e/build/core/add-application.mk:128: Android NDK: WARNING:APP_PLATFORM android-9 is larger than android:minSdkVersion 8 in ./AndroidManifest.xml
Run Code Online (Sandbox Code Playgroud)
我使用的是NDK版r8e.我的AndroidManifest.xml中的最小SDK版本是8,但我没有在任何地方指定APP_PLATFORM作为android-9.我该如何将其更改为8.
任何人都可以告诉我如何解决这个警告,因为我认为这可能会导致问题.
我正在尝试编译在cocos2d-x上开发的Android本机应用程序.当我尝试调试我的应用程序时,我收到以下错误.
Android NDK: jni/Android.mk: Cannot find module with tag 'CocosDenshion/android' in import path
Android NDK: Are you sure your NDK_MODULE_PATH variable is properly defined ?
Android NDK: The following directories were searched:
Run Code Online (Sandbox Code Playgroud)
我的android.mk文件中有以下几行
$(Call import-add-path, $(LOCAL_PATH)/../../../CocosDenshion/android)
LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static cocosdenshion_static
include $(BUILD_SHARED_LIBRARY)
$(call import-module,CocosDenshion/android)
$(call import-module,cocos2dx)
Run Code Online (Sandbox Code Playgroud)
在我的build_native.sh中,NDK_MODULE_PATH定义为
"NDK_MODULE_PATH=${COCOS2DX_ROOT}:${COCOS2DX_ROOT}/cocos2dx/platform/third_party/android/prebuilt"
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我解决这个问题.
当我将项目链接到我已复制到我的项目lib文件夹的facebookSDK jar文件时,我得到java.lang.NoClassDefFoundError:com.facebook.android.R $布局错误,而不是将我的项目链接到我工作区中的facebookSDK库项目.当我链接到工作区中的库项目时,它工作正常.
谁能告诉我如何解决这个问题.我正在使用facebook sdk 3.0 for android.提前致谢.
编辑:生成带有警告的jar文件后,我的logcat中出现以下错误
01-17 12:42:04.790: E/AndroidRuntime(3073): FATAL EXCEPTION: main
01-17 12:42:04.790: E/AndroidRuntime(3073): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.games.game/com.facebook.LoginActivity}: android.content.res.Resources$NotFoundException: File 296108030489520 from xml type layout resource ID #0x7f030001
01-17 12:42:04.790: E/AndroidRuntime(3073): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1816)
01-17 12:42:04.790: E/AndroidRuntime(3073): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1837)
01-17 12:42:04.790: E/AndroidRuntime(3073): at android.app.ActivityThread.access$1500(ActivityThread.java:132)
01-17 12:42:04.790: E/AndroidRuntime(3073): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1033)
01-17 12:42:04.790: E/AndroidRuntime(3073): at android.os.Handler.dispatchMessage(Handler.java:99)
01-17 12:42:04.790: E/AndroidRuntime(3073): at android.os.Looper.loop(Looper.java:143)
01-17 12:42:04.790: E/AndroidRuntime(3073): at android.app.ActivityThread.main(ActivityThread.java:4196)
01-17 12:42:04.790: E/AndroidRuntime(3073): at java.lang.reflect.Method.invokeNative(Native Method)
01-17 12:42:04.790: E/AndroidRuntime(3073): …
Run Code Online (Sandbox Code Playgroud) 我试图获得一个字符串,以回报从cpp到java的函数调用.
这是我的JNI电话
string GetIDJni()
{
cocos2d::JniMethodInfo methodInfo;
if (! JniHelper::getStaticMethodInfo(methodInfo, CLASS_NAME, "GetID", "()Ljava/lang/String"))
{
return "";
}
jobject retObj = methodInfo.env->CallStaticObjectMethod(methodInfo.classID, methodInfo.methodID);
jstring retStr = (jstring)retObj;
methodInfo.env->DeleteLocalRef(methodInfo.classID);
return (JniHelper::jstring2string(retStr));
}
Run Code Online (Sandbox Code Playgroud)
在编译时我得到了错误
错误:从'_jobject*'到'_jstring*'的转换无效
谁能告诉我如何解决这个问题.
我正在尝试使用cocos2d-x构建游戏.在使用cygwin为armeabi-v7a编译时,我收到以下警告
E:/android-ndk-r8d/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: warning: cannot scan executable section 89 of ./obj/local/armeabi-v7a/png.a(png.o) for Cortex-A8 erratum because it has no mapping symbols.
E:/android-ndk-r8d/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: warning: cannot scan executable section 152 of ./obj/local/armeabi-v7a/png.a(pngget.o) for Cortex-A8 erratum because it has no mapping symbols.
E:/android-ndk-r8d/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: warning: cannot scan executable section 88 of ./obj/local/armeabi-v7a/png.a(pngpread.o) for Cortex-A8 erratum because it has no mapping symbols.
E:/android-ndk-r8d/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: warning: cannot scan executable section 38 of ./obj/local/armeabi-v7a/png.a(pngread.o) for Cortex-A8 erratum because it has no mapping symbols.
E:/android-ndk-r8d/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: warning: cannot scan executable section 88 …
Run Code Online (Sandbox Code Playgroud) 当屏幕休眠或屏幕被锁定时,我的活动类中的onDestroy函数被调用.我知道这不应该发生,因为控制流应该是onPause() - > onStop().在锁定屏幕上,控制流程如下:onPause() - > onStop() - > onDestroy().我已经android:configChanges="orientation|keyboardHidden"
在我的Android清单中给出了类似问题的答案建议,但是没有用.从onStop()检查时,isFinishing()函数返回false.
谁能帮我解决这个问题.
我正在使用cocos2dx制作一个小游戏,在我的游戏活动中,我给出了以下功能来处理后退按钮.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
return super.onKeyDown(keyCode, event);
}
@Override
public void onDestroy()
{
android.os.Process.killProcess(android.os.Process.myPid());
super.onDestroy();
}
Run Code Online (Sandbox Code Playgroud)
在按下后退按钮时,我在logcat中收到以下警告
无法打开keycharmap文件
加载keycharmap文件'/system/usr/keychars/qtouch-touchscreen.kcm.bin'时出错.hw.keyboards.65538.devname = '的QTouch-触摸屏'
该调用未达到onKeyDown或onDestroy函数.
请告诉我为什么会出现此警告以及为什么我无法处理android后退按钮.
这些函数在我的java android项目中正常工作,但在我的cocos2d-x项目中没有
我试图从我的cpp类调用我的java类中的一些函数.我成功完成这些调用三次,直到我第四次调用函数.我正在使用cocos2dx引擎.
我从MiscManagerJni.cpp中调用MiscManager.java中的函数
当我尝试获取classID和游戏崩溃时,我收到以下错误:
12-20 12:06:09.328:W/System.err(26651):java.lang.NoClassDefFoundError:[generic] 12-20 12:06:09.328:W/System.err(26651):at dalvik.system. NativeStart.main(Native Method)12-20 08:56:35.402:D/libMiscManager(25952):无法找到com/games/Game/MiscManager类
我已经在MiscManagerJni.cpp类的MiscManager.java类中成功调用了3次函数.但是当我打电话时,第四次返回null
jclass ret = pEnv-> FindClass(CLASS_NAME);
谁能告诉我是什么导致了这个错误.
这些是我用来获取方法ID和类id的函数
#define LOG_TAG "libMiscManager"
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__)
#define CLASS_NAME "com/games/Game/MiscManager"
typedef struct JniMethodInfo_
{
JNIEnv * env;
jclass classID;
jmethodID methodID;
} JniMethodInfo;
extern "C"
{
// get env and cache it
static JNIEnv* getJNIEnv(void)
{
JavaVM* jvm = cocos2d::JniHelper::getJavaVM();
if (NULL == jvm) {
LOGD("Failed to get JNIEnv. JniHelper::getJavaVM() is NULL");
return NULL;
}
JNIEnv *env = NULL;
// get jni …
Run Code Online (Sandbox Code Playgroud) 我试图在Facebook墙上发布一个Feed,而无需使用Facebook Android SDK打开对话框.我试图找到一种方法,但找不到.任何人都可以告诉他们如何在没有打开对话的情况下在后台发布到墙上.
我尝试使用以下代码
public static void PublishToFeedInBackground()
{
final Bundle _postParameter = new Bundle();
_postParameter.putString("name", name);
_postParameter.putString("link", link);
_postParameter.putString("picture", link_to_image);
_postParameter.putString("caption", caption);
_postParameter.putString("description", description);
final List<String> PERMISSIONS = Arrays.asList("publish_actions");
if (Session.getActiveSession() != null)
{
// Check for publish permissions
List<String> _permissions = Session.getActiveSession().getPermissions();
if (!isSubsetOf(PERMISSIONS, _permissions))
{
NewPermissionsRequest reauthRequest = new Session.NewPermissionsRequest(this.GetContext(), PERMISSIONS);
Session.getActiveSession().requestNewReadPermissions(reauthRequest);
return;
}
}
this.runOnUiThread(new Runnable()
{
@Override
public void run()
{
Request request = new Request(Session.getActiveSession(), "me/feed", _postParameter, HttpMethod.POST);
RequestAsyncTask task = new RequestAsyncTask(request);
task.execute(); …
Run Code Online (Sandbox Code Playgroud) 我试图从我的应用程序在Android和ios中打开一个Facebook页面.在ios中,页面显示LIKE按钮,但在android中它显示SUBSCRIBE按钮.任何人都可以告诉我如何将其更改为像android中的按钮.我已经给出了下面的截图.