質問するログイン新規登録

質問編集履歴

6

;ついか

2017/04/10 05:25

投稿

kaji
kaji

スコア648

title CHANGED
File without changes
body CHANGED
@@ -5,7 +5,7 @@
5
5
  {
6
6
  jclass jsampleInit = (jclass)env->GetObjectArrayElement(jsampleInits, 0);
7
7
  jfieldID var = env->GetFieldID(jsampleInit, "name", "Ljava/lang/String;");
8
- jstring jstr = (jstring)env->GetObjectField(jsampleInit, var);
8
+ jstring jstr = (jstring)env->GeCCtObjectField(jsampleInit, var);
9
9
  ```
10
10
 
11
11
 
@@ -40,7 +40,7 @@
40
40
  public:
41
41
  const char* name = "";
42
42
  int valule = 0;
43
- }
43
+ };
44
44
  ```
45
45
  Classes/CCSampleInit.cpp
46
46
  ```ここに言語を入力

5

追記B

2017/04/10 05:25

投稿

kaji
kaji

スコア648

title CHANGED
File without changes
body CHANGED
@@ -50,4 +50,16 @@
50
50
  return new CCSampleInit();
51
51
  }
52
52
  ```
53
- ==追記A end==
53
+ ==追記A end==
54
+
55
+ ==追記B 2017/4/7 16:12 start==
56
+ ```ここに言語を入力
57
+ public class SampleActivityBridge {
58
+ private static Activity mActivity;
59
+ public static native void onSampleInitsLoaded(SampleInit[] sampleInits);
60
+ @Override
61
+ public void onSampleInitsLoaded(SampleInit[] sampleInits) {
62
+ SampleInitActivityBridge.onSampleInitsLoaded(sampleInits);
63
+ }
64
+ ```
65
+ ==追記B end==

4

追記A

2017/04/07 07:13

投稿

kaji
kaji

スコア648

title CHANGED
File without changes
body CHANGED
@@ -29,4 +29,25 @@
29
29
  http://stnguyen.com/cocos2d-x/call-cpp-functions-from-java.html
30
30
 
31
31
  jclassの部分を別の型にすればいいと思うのですが、カスタムのクラスの型がかければいいのですが、どう書くのでしょうか?
32
- 知ってる方教えてほしいです
32
+ 知ってる方教えてほしいです
33
+
34
+ ==追記A 2017/4/7 16:06 start==
35
+ Cocos側の入れ物として以下を定義しました。
36
+ Classes/CCSampleInit.h
37
+ ```cpp
38
+ class CCSampleInit
39
+ {
40
+ public:
41
+ const char* name = "";
42
+ int valule = 0;
43
+ }
44
+ ```
45
+ Classes/CCSampleInit.cpp
46
+ ```ここに言語を入力
47
+ USING_NS_CC;
48
+ CCSampleInit* CCSampleInit::create()
49
+ {
50
+ return new CCSampleInit();
51
+ }
52
+ ```
53
+ ==追記A end==

3

コードミス修正

2017/04/07 07:07

投稿

kaji
kaji

スコア648

title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,9 @@
1
1
  jniを使ってandroidからcocosへcallbackする処理を記述してるのですがエラーが出ます。
2
2
 
3
3
  ```cpp
4
+ JNIEXPORT void JNICALL Java_jp_co_sample_SampleActivityBridge_onSampleLoaded(JNIEnv *env, jclass clazz, jobjectArray jsampleInits)
5
+ {
4
- jclass jsampleInit = (jclass)env->GetObjectArrayElement(jsampleInit, 0);
6
+ jclass jsampleInit = (jclass)env->GetObjectArrayElement(jsampleInits, 0);
5
7
  jfieldID var = env->GetFieldID(jsampleInit, "name", "Ljava/lang/String;");
6
8
  jstring jstr = (jstring)env->GetObjectField(jsampleInit, var);
7
9
  ```

2

hoge

2017/04/07 03:32

投稿

kaji
kaji

スコア648

title CHANGED
File without changes
body CHANGED
@@ -18,6 +18,11 @@
18
18
 
19
19
  一行目のjsampleInitの型がjclassだとエラーが出るっぽいのですが、
20
20
 
21
+ 以下のようなコードもネット検索すると見つかり、jclassで問題ないかと思ったのですが、以下コードは問題なくじっこうできます、上記のように書くとエラーになるようです。
22
+ ```ここに言語を入力
23
+ jclass cls = env->FindClass("jp/co/sample/SampleInit");
24
+ ```
25
+
21
26
  ここのJNI Types一覧から妥当な型はjclassのみでした。
22
27
  http://stnguyen.com/cocos2d-x/call-cpp-functions-from-java.html
23
28
 

1

hogehoge

2017/04/06 09:42

投稿

kaji
kaji

スコア648

title CHANGED
File without changes
body CHANGED
@@ -12,6 +12,8 @@
12
12
  エラー
13
13
  ```ここに言語を入力
14
14
  JNI WARNING: jclass arg has wrong type (expected Ljava/lang/Class;, got Ljp/co/sample/sampleInit/SampleInit;) (GetFieldID)
15
+ 04-06 18:14:52.198 26400-26400/jp.co.sample W/dalvikvm: in Ljp/co/sample/SampleActivityBridge;.onSamplesLoaded:([Ljp/co/sample/SampleInit;)V (GetFieldID)
16
+
15
17
  ```
16
18
 
17
19
  一行目のjsampleInitの型がjclassだとエラーが出るっぽいのですが、