質問編集履歴

6

;ついか

2017/04/10 05:25

投稿

kaji
kaji

スコア648

test CHANGED
File without changes
test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  jfieldID var = env->GetFieldID(jsampleInit, "name", "Ljava/lang/String;");
14
14
 
15
- jstring jstr = (jstring)env->GetObjectField(jsampleInit, var);
15
+ jstring jstr = (jstring)env->GeCCtObjectField(jsampleInit, var);
16
16
 
17
17
  ```
18
18
 
@@ -82,7 +82,7 @@
82
82
 
83
83
  int valule = 0;
84
84
 
85
- }
85
+ };
86
86
 
87
87
  ```
88
88
 

5

追記B

2017/04/10 05:25

投稿

kaji
kaji

スコア648

test CHANGED
File without changes
test CHANGED
@@ -103,3 +103,27 @@
103
103
  ```
104
104
 
105
105
  ==追記A end==
106
+
107
+
108
+
109
+ ==追記B 2017/4/7 16:12 start==
110
+
111
+ ```ここに言語を入力
112
+
113
+ public class SampleActivityBridge {
114
+
115
+ private static Activity mActivity;
116
+
117
+ public static native void onSampleInitsLoaded(SampleInit[] sampleInits);
118
+
119
+ @Override
120
+
121
+ public void onSampleInitsLoaded(SampleInit[] sampleInits) {
122
+
123
+ SampleInitActivityBridge.onSampleInitsLoaded(sampleInits);
124
+
125
+ }
126
+
127
+ ```
128
+
129
+ ==追記B end==

4

追記A

2017/04/07 07:13

投稿

kaji
kaji

スコア648

test CHANGED
File without changes
test CHANGED
@@ -61,3 +61,45 @@
61
61
  jclassの部分を別の型にすればいいと思うのですが、カスタムのクラスの型がかければいいのですが、どう書くのでしょうか?
62
62
 
63
63
  知ってる方教えてほしいです
64
+
65
+
66
+
67
+ ==追記A 2017/4/7 16:06 start==
68
+
69
+ Cocos側の入れ物として以下を定義しました。
70
+
71
+ Classes/CCSampleInit.h
72
+
73
+ ```cpp
74
+
75
+ class CCSampleInit
76
+
77
+ {
78
+
79
+ public:
80
+
81
+ const char* name = "";
82
+
83
+ int valule = 0;
84
+
85
+ }
86
+
87
+ ```
88
+
89
+ Classes/CCSampleInit.cpp
90
+
91
+ ```ここに言語を入力
92
+
93
+ USING_NS_CC;
94
+
95
+ CCSampleInit* CCSampleInit::create()
96
+
97
+ {
98
+
99
+ return new CCSampleInit();
100
+
101
+ }
102
+
103
+ ```
104
+
105
+ ==追記A end==

3

コードミス修正

2017/04/07 07:07

投稿

kaji
kaji

スコア648

test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,11 @@
4
4
 
5
5
  ```cpp
6
6
 
7
+ JNIEXPORT void JNICALL Java_jp_co_sample_SampleActivityBridge_onSampleLoaded(JNIEnv *env, jclass clazz, jobjectArray jsampleInits)
8
+
9
+ {
10
+
7
- jclass jsampleInit = (jclass)env->GetObjectArrayElement(jsampleInit, 0);
11
+ jclass jsampleInit = (jclass)env->GetObjectArrayElement(jsampleInits, 0);
8
12
 
9
13
  jfieldID var = env->GetFieldID(jsampleInit, "name", "Ljava/lang/String;");
10
14
 

2

hoge

2017/04/07 03:32

投稿

kaji
kaji

スコア648

test CHANGED
File without changes
test CHANGED
@@ -38,6 +38,16 @@
38
38
 
39
39
 
40
40
 
41
+ 以下のようなコードもネット検索すると見つかり、jclassで問題ないかと思ったのですが、以下コードは問題なくじっこうできます、上記のように書くとエラーになるようです。
42
+
43
+ ```ここに言語を入力
44
+
45
+ jclass cls = env->FindClass("jp/co/sample/SampleInit");
46
+
47
+ ```
48
+
49
+
50
+
41
51
  ここのJNI Types一覧から妥当な型はjclassのみでした。
42
52
 
43
53
  http://stnguyen.com/cocos2d-x/call-cpp-functions-from-java.html

1

hogehoge

2017/04/06 09:42

投稿

kaji
kaji

スコア648

test CHANGED
File without changes
test CHANGED
@@ -26,6 +26,10 @@
26
26
 
27
27
  JNI WARNING: jclass arg has wrong type (expected Ljava/lang/Class;, got Ljp/co/sample/sampleInit/SampleInit;) (GetFieldID)
28
28
 
29
+ 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)
30
+
31
+
32
+
29
33
  ```
30
34
 
31
35