Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9cf2fa6a authored by Brett Chabot's avatar Brett Chabot Committed by Jerome Gaillard
Browse files

Add back support for 'method_binding_format' in HostRuntime.cpp

HostRuntime previously had support for specifying a custom
JNI method binding method. This is needed for Robolectric
which renames native methods during its instrumentation process.
This commit restores this support.

Flag: NONE host-only change
Test: m libandroid_runtime, run robolectric tests
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:620077d593902a67b4f75f31b557a1246d84c733)
Merged-In: Iea471edc74317dda1e92899d1ad68fa3520b6812
Change-Id: Iea471edc74317dda1e92899d1ad68fa3520b6812
parent cdb99b76
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -359,6 +359,17 @@ void AndroidRuntime::onStarted() {

void AndroidRuntime::start(const char* className, const Vector<String8>& options, bool zygote) {
    JNIEnv* env = AndroidRuntime::getJNIEnv();

    jstring propertyString =
            (jstring)env->CallStaticObjectMethod(systemClass, getPropertyId,
                                                 env->NewStringUTF("method_binding_format"),
                                                 env->NewStringUTF(""));
    const char* propertyChars = env->GetStringUTFChars(propertyString, 0);
    auto method_binding_format = string(propertyChars);
    env->ReleaseStringUTFChars(propertyString, propertyChars);

    setJniMethodFormat(method_binding_format);

    // Register native functions.
    if (startReg(env) < 0) {
        ALOGE("Unable to register all android native methods\n");