小编Saa*_*sad的帖子

Android NDK:从JNI C类调用java方法

我有JNI方法,我试图调用Java方法.这是我的JNI代码

void DummySink::afterGettingFrame(unsigned frameSize, unsigned numTruncatedBytes,
                  struct timeval presentationTime, unsigned /*durationInMicroseconds*/) {

     __android_log_print(ANDROID_LOG_VERBOSE, "RTSP", "Frame: %c", propRec->sPropBytes);
     jmethodID mid;
     jclass handlerClass = env9->FindClass("ob/android/Stream");
     if (handlerClass == NULL) {
         __android_log_print(ANDROID_LOG_VERBOSE, "RTSP-Error", "Class");
     }
     mid = env9->GetMethodID(handlerClass, "onResponse", "([B)V");
     if (mid == NULL) {
         __android_log_print(ANDROID_LOG_VERBOSE, "RTSP-Error", "Method");
     }

     jbyteArray jbArray = env9->NewByteArray((int)propRec->sPropLength);
     env9->SetByteArrayRegion(jbArray, 0, (int)propRec->sPropLength, (jbyte*)propRec->sPropBytes);

     //jobject theClass = env9->FindClass("ob/android/Stream");

     env9->CallVoidMethod(handlerClass, mid, jbArray);

}
Run Code Online (Sandbox Code Playgroud)

这是我的Java代码

public void onResponse(byte[] str) 
    { 
        Log.v("Response", "Java");
    }
Run Code Online (Sandbox Code Playgroud)

我收到了以下崩溃

03-08 16:01:05.915: W/dalvikvm(17552): JNI WARNING: can't call Lob/android/Stream;.onResponse …
Run Code Online (Sandbox Code Playgroud)

android android-ndk

10
推荐指数
1
解决办法
1万
查看次数

Google Maps android中的错误"android无法加载地图.无法联系Google服务器."

我试图在我的Android应用程序中实现谷歌地图,但我卡在一个错误" android Failed to load map. Could not contact Google servers." 我已经包含谷歌播放库,使用SHA1证书指纹获得密钥.我得到了SHA1证书指纹:

 sudo keytool -v -list -alias androiddebugkey \-keystore /home/.android/debug.keystore
Run Code Online (Sandbox Code Playgroud)

我根据This管理了我的清单文件

现在我无法找到此错误的原因..任何建议都非常感谢...

  • 我已经看到stackoverflow的问题,但没有得到任何解决方案!

编辑:我的清单文件权限如下:

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

<uses-permission android:name="PAKG_NAME.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.com.google.android.providers.gsf.permission.READ_GSERVICES" />


<uses-feature
    android:glEsVersion="0x00020000"
    android:required="true" />


.....................

      <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="MY_KEY" />
Run Code Online (Sandbox Code Playgroud)

我的布局xml片段为:

  <fragment
            android:id="@+id/map"
            android:layout_width="match_parent"
            android:layout_height="100dp"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            class="com.google.android.gms.maps.SupportMapFragment" /> …
Run Code Online (Sandbox Code Playgroud)

android google-maps

5
推荐指数
1
解决办法
3839
查看次数

标签 统计

android ×2

android-ndk ×1

google-maps ×1