Skip to content

Commit 95d5de5

Browse files
authored
Fix compilation errors for android-chip-tool and java-matter-commissioner (project-chip#37346)
* Fix compilation errors for android-chip-tool and java-matter-commissioner - Corrected logging statement syntax in `AndroidLogDownloadFromNode.cpp` - Fixed type casting issue for `jlong jremoteNodeId` - Resolved incorrect pointer dereference causing a misplaced operation in `OnTransferCallback` - Updated type casting for `msg_length` in `CHIPP256KeypairBridge.cpp` to use `jsize` instead of `uint32_t` - Adjusted JNI function call to use `static_cast<jsize>(msg_length)` These changes ensure compatibility with JNI and address type inconsistencies that were causing build failures. Testing: ```bash export PATH=$PATH:/opt/kotlin-compiler-1.8.0/bin export ANDROID_HOME=/opt/Android/sdk/ export ANDROID_NDK_HOME=/opt/Android/sdk/ndk/23.2.8568313 export JAVA_HOME=/Library/Java/JavaVirtualMachines/amazon-corretto-11.jdk/Contents/Home export JAVA_PATH=/Library/Java/JavaVirtualMachines/amazon-corretto-11.jdk/Contents/Home sed 's/ -XX:MaxPermSize=2048m//' examples/android/CHIPTool/gradle.properties > examples/android/CHIPTool/gradle.properties.new && mv examples/android/CHIPTool/gradle.properties.new examples/android/CHIPTool/gradle.properties source scripts/activate.sh ./scripts/build/build_examples.py --target android-arm64-chip-tool --target darwin-arm64-java-matter-controller build ``` * fix: Cast GetFabricIndex() return value to jint in AndroidLogDownloadFromNode The change adds an explicit static cast to convert the FabricIndex return value to jint type when assigning to jFabricIndex variable, maintaining type safety in the JNI interface layer.
1 parent 94936ea commit 95d5de5

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

src/controller/java/AndroidLogDownloadFromNode.cpp

+5-4
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ void AndroidLogDownloadFromNode::OnResponseRetrieveLogs(void * context,
152152
using namespace chip::app::Clusters::DiagnosticLogs;
153153
if (data.status == StatusEnum::kSuccess)
154154
{
155-
ChipLogProgress(Controller, "Success. Will receive log from BDX protocol.")
155+
ChipLogProgress(Controller, "Success. Will receive log from BDX protocol.");
156156
}
157157
else if (data.status == StatusEnum::kExhausted)
158158
{
@@ -210,8 +210,8 @@ void AndroidLogDownloadFromNode::FinishLogDownloadFromNode(void * context, CHIP_
210210
JniLocalReferenceScope scope(env);
211211

212212
jobject jCallback = self->mJavaCallback.ObjectRef();
213-
jint jFabricIndex = self->mController->GetFabricIndex();
214-
jlong jremoteNodeId = self->mRemoteNodeId;
213+
jint jFabricIndex = static_cast<jint>(self->mController->GetFabricIndex());
214+
jlong jremoteNodeId = static_cast<jlong>(self->mRemoteNodeId);
215215

216216
VerifyOrExit(env != nullptr, ChipLogError(Controller, "Could not get JNIEnv for current thread"));
217217

@@ -274,7 +274,8 @@ void AndroidLogDownloadFromNode::OnTransferCallback(FabricIndex fabricIndex, Nod
274274

275275
if (ret != JNI_TRUE)
276276
{
277-
ChipLogError(Controller, "Transfer will be rejected.") * errInfoOnFailure = CHIP_ERROR_INTERNAL;
277+
ChipLogError(Controller, "Transfer will be rejected.");
278+
*errInfoOnFailure = CHIP_ERROR_INTERNAL;
278279
}
279280
}
280281

src/controller/java/CHIPP256KeypairBridge.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -108,14 +108,14 @@ CHIP_ERROR CHIPP256KeypairBridge::ECDSA_sign_msg(const uint8_t * msg, size_t msg
108108
return CHIP_ERROR_INCORRECT_STATE;
109109
}
110110

111-
VerifyOrReturnError(CanCastTo<uint32_t>(msg_length), CHIP_ERROR_INVALID_ARGUMENT);
111+
VerifyOrReturnError(CanCastTo<jsize>(msg_length), CHIP_ERROR_INVALID_ARGUMENT);
112112

113113
CHIP_ERROR err = CHIP_NO_ERROR;
114114
jbyteArray jniMsg;
115115
jobject signedResult = nullptr;
116116
JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread();
117117
VerifyOrReturnError(env != nullptr, err = CHIP_JNI_ERROR_NO_ENV);
118-
err = JniReferences::GetInstance().N2J_ByteArray(env, msg, static_cast<uint32_t>(msg_length), jniMsg);
118+
err = JniReferences::GetInstance().N2J_ByteArray(env, msg, static_cast<jsize>(msg_length), jniMsg);
119119
VerifyOrReturnError(err == CHIP_NO_ERROR, err);
120120
VerifyOrReturnError(jniMsg != nullptr, err);
121121
VerifyOrReturnError(mDelegate.HasValidObjectRef(), CHIP_ERROR_INCORRECT_STATE);

0 commit comments

Comments
 (0)