質問編集履歴

2

2017/11/18 12:56

投稿

Seiten_Minagawa
Seiten_Minagawa

スコア58

test CHANGED
File without changes
test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  ```
14
14
 
15
- Java側で存在するはずのアルゴリズム名を指定しているのにNoSuchAlgorithmExceptionが出てしまう。
15
+ (済)Java側で存在するはずのアルゴリズム名を指定しているのにNoSuchAlgorithmExceptionが出てしまう。
16
16
 
17
17
  C++側でJava側に正常に引数が渡せていない模様。
18
18
 
@@ -56,9 +56,25 @@
56
56
 
57
57
 
58
58
 
59
- MessageDigest md = MessageDigest.getInstance("MD5");
59
+ try
60
60
 
61
+ {
62
+
63
+ MessageDigest md = MessageDigest.getInstance("MD5");
64
+
61
- hash = md.digest(str_bytes);
65
+ hash = md.digest(str_bytes);
66
+
67
+ }
68
+
69
+ catch (NoSuchAlgorithmExpection e)
70
+
71
+ {
72
+
73
+ hash = new byte[1];
74
+
75
+ hash[0] = 0;
76
+
77
+ }
62
78
 
63
79
  }
64
80
 

1

一部誤字修正。GetByteArrayElementsのisCopy引数に渡すためのjbooleanを追加。

2017/11/18 12:56

投稿

Seiten_Minagawa
Seiten_Minagawa

スコア58

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
1
  ###前提・実現したいこと
2
2
 
3
- AndroidにおいてNativeActivityを使ったアプリ。
3
+ AndroidにおいてAndroid版DXライブラリとNativeActivityを使ったアプリ。
4
4
 
5
5
  JNIを使って、MD5ハッシュを取得したい。
6
6
 
@@ -13,6 +13,10 @@
13
13
  ```
14
14
 
15
15
  Java側で存在するはずのアルゴリズム名を指定しているのにNoSuchAlgorithmExceptionが出てしまう。
16
+
17
+ C++側でJava側に正常に引数が渡せていない模様。
18
+
19
+
16
20
 
17
21
  ```
18
22
 
@@ -76,6 +80,8 @@
76
80
 
77
81
  {
78
82
 
83
+         //DXライブラリのANativeActivityを取得する関数
84
+
79
85
  auto nativeactivity = GetNativeActivity();
80
86
 
81
87
  JNIEnv* env;
@@ -92,7 +98,7 @@
92
98
 
93
99
 
94
100
 
95
- jmethodID jmethidID_CalculationMD5 = env->GetMethodID(jclass_(プロジェクト名), "CauculationMD5", "(Ljava/lang/string;)V");
101
+ jmethodID jmethodID_CalculationMD5 = env->GetMethodID(jclass_(プロジェクト名), "CauculationMD5", "(Ljava/lang/String;)V");
96
102
 
97
103
 
98
104
 
@@ -102,7 +108,7 @@
102
108
 
103
109
  //MD5を計算
104
110
 
105
- env->CallVoidMethod(nativeactivity->clazz, jmethidID_CalculationMD5, jstr);
111
+ env->CallVoidMethod(nativeactivity->clazz, jmethodID_CalculationMD5, jstr);
106
112
 
107
113
 
108
114
 
@@ -110,9 +116,11 @@
110
116
 
111
117
  jfieldID jfieldID_hash = env->GetFieldID(jclass_(プロジェクト名), "hash", "[B");
112
118
 
113
- jbyteArray hasharr = (jbyteArray)env->GetObjectField(jclass_(プロジェクト名), jfieldID_hash);
119
+ jbyteArray hasharr = (jbyteArray)env->GetObjectField(nativeactivity->clazz, jfieldID_hash);
114
120
 
121
+ jboolean boolean;
122
+
115
- auto hasharrptr = env->GetByteArrayElements(hasharr, nullptr);
123
+ auto hasharrptr = env->GetByteArrayElements(hasharr, &boolean);
116
124
 
117
125
 
118
126