环境:android源码6.0 放到源码目录package/app/编译,有谁遇到这种问题的
解决方案 »
- nor current process has android.permission.WRITE_APN_SETTINGS崩溃问题 android4.0系统问题
- 关于ListView中CheckBox 用程序全选的问题
- 求新浪微博oauth2.0能用的登录代码
- 为什么遍历Activity layout中的控件时取不值
- 软件是否支持移到sd卡,是系统判断,还是apk自己申明?
- 为什么两个activity之间不能正常跳转 请高手指点。谢谢!!
- 请教Android FS移植问题。谢谢!
- 获取优酷、搜狐视频源地址的方法
- 初学Android,请高手赐教--一个国外软件的导航菜单(在线等)
- ExpandableListView的子条目不可点击?????
- android studio 安装不成功 求助!
- apk兼容6.0(无源码),7.0和8.0闪退,求解决思路
namespace android {的上面增加下面的
extern int register_android_hardware_HelloWorldCF(JNIEnv* env);
在这个方法里面增加你自己的
static const RegJNIRec gRegJNI[] = {
REG_JNI(register_android_hardware_HelloWorldCF),在自己的cpp文件中android_hardware_HelloWorldCF.cppstatic void helloworld_init(JNIEnv* env, jobject clazz) {
ALOGE("helloworld_init env 1111111222222");
}static const JNINativeMethod method_table[] = {
{"get_helloworld","()V",(void*)helloworld_init},};
int register_android_hardware_HelloWorldCF(JNIEnv *env){
ALOGE("[cf] ===");
return jniRegisterNativeMethods(env,"android/hardware/HelloWorldCF",method_table,NELEM(method_table));
}在android.mk中写编译脚本
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libhelloworld
LOCAL_SRC_FILES := android_hardware_HelloWorldCF
include $(BUILD_SHARED_LIBRARY)
jint JNI_OnLoad(JavaVM* vm, void* /*reserved*/)
{
if (!vm)
{
return -1;
}
JNIEnv* env;
if (JNI_OK != vm->GetEnv(reinterpret_cast<void**> (&env),
JNI_VERSION_1_4))
{
return -1;
}
memset(&veData1, 0, sizeof(veData1));
veData1.jvm = vm;
return JNI_VERSION_1_4;
}
int32_t AudioDeviceAndroidJni::SetAndroidAudioDeviceObjects(void* javaVM,
void* env,
void* context) { // TODO(leozwang): Make this function thread-safe.
globalJvm = reinterpret_cast<JavaVM*>(javaVM); if (env) {
globalJNIEnv = reinterpret_cast<JNIEnv*>(env);
// Get java class type (note path to class packet).
jclass javaScClassLocal = globalJNIEnv->FindClass(
"org/webrtc/voiceengine/WebRTCAudioDevice");
if (!javaScClassLocal) {
WEBRTC_TRACE(kTraceError, kTraceAudioDevice, -1,
"%s: could not find java class", __FUNCTION__);
return -1; // exception thrown
}
// Create a global reference to the class (to tell JNI that we are
// referencing it after this function has returned).
globalScClass = reinterpret_cast<jclass> (
globalJNIEnv->NewGlobalRef(javaScClassLocal));
if (!globalScClass) {
WEBRTC_TRACE(kTraceError, kTraceAudioDevice, -1,
"%s: could not create reference", __FUNCTION__);
return -1;
}
globalContext = globalJNIEnv->NewGlobalRef(
reinterpret_cast<jobject>(context));
if (!globalContext) {
return -1;
}
// Delete local class ref, we only use the global ref
globalJNIEnv->DeleteLocalRef(javaScClassLocal);
}
2、回复二楼androidRuntime.cpp这个文件在哪里,能说的详细点吗?
3、我暂时解决办法,但还是要查找具体原因:因为我用源码开发的,当我app编译到/system/app目录下无法FindClass,,编译到/system/priv-app/目录就可以,,,控制编译选项是mk文件中#LOCAL_PRIVILEGED_MODULE := true变量