关于invokeInitFramework 方法未实现的问题

新手上路,请多包涵

连接真机(Meizu PRO 5)报错,连模拟器正常。weex sdk: v0.16.0,项目使用 weex-toolkit 创建。

错误提示如下,先是一堆 framework.js 未初始化的错误提示,然后是下面那个:

[WXBridgeManager] invokeRegisterModules: framework.js uninitialized.
[WXBridgeManager] invokeRegisterComponents: framework.js uninitialized.

E/art: No implementation found for int com.taobao.weex.bridge.WXBridge.initFramework(java.lang.String, com.taobao.weex.bridge.WXParams) (tried Java_com_taobao_weex_bridge_WXBridge_initFramework and Java_com_taobao_weex_bridge_WXBridge_initFramework__Ljava_lang_String_2Lcom_taobao_weex_bridge_WXParams_2)
E/weex: [WXBridgeManager] invokeInitFramework java.lang.UnsatisfiedLinkError: No implementation found for int com.taobao.weex.bridge.WXBridge.initFramework(java.lang.String, com.taobao.weex.bridge.WXParams) (tried Java_com_taobao_weex_bridge_WXBridge_initFramework and Java_com_taobao_weex_bridge_WXBridge_initFramework__Ljava_lang_String_2Lcom_taobao_weex_bridge_WXParams_2)
                                                              at com.taobao.weex.bridge.WXBridge.initFramework(Native Method)
                                                              at com.taobao.weex.bridge.WXBridgeManager.initFramework(WXBridgeManager.java:1523)
                                                              at com.taobao.weex.bridge.WXBridgeManager.invokeCreateInstance(WXBridgeManager.java:1356)
                                                              at com.taobao.weex.bridge.WXBridgeManager.access$200(WXBridgeManager.java:101)
                                                              at com.taobao.weex.bridge.WXBridgeManager$5.run(WXBridgeManager.java:1340)
                                                              at com.taobao.weex.common.WXThread$SafeRunnable.run(WXThread.java:49)
                                                              at android.os.Handler.handleCallback(Handler.java:751)
                                                              at android.os.Handler.dispatchMessage(Handler.java:95)
                                                              at android.os.Looper.loop(Looper.java:154)
                                                              at E/weex: [WXBridgeManager] invokeCreateInstance: framework.js uninitialized.

完整的 build.gradle 如下:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion '25.0.0'

    defaultConfig {
        applicationId "com.tt.lifecycle"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 5
        versionName "0.6.0.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        ndk{
            abiFilters "armeabi-v7a"
            abiFilters "x86"
            abiFilters "armeabi"
        }
    }
    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            def outputFile = output.outputFile
            if (outputFile != null && outputFile.name.equals('app-debug.apk')) {
                def fileName = outputFile.name.replace("app-debug.apk", "lifecycle-app.apk")
                output.outputFile = new File(outputFile.parent, fileName)
            }
        }
    }
    signingConfigs {
//        release {
//            storeFile file("tools/weex.jks")
//            storePassword "123456"
//            keyAlias "weex"
//            keyPassword "123456"
//        }
        debug {
            storeFile file("tools/debug.keystore")
            storePassword "android"
            keyAlias "androiddebugkey"
            keyPassword "android"
        }
    }
    buildTypes {
        release {
//            signingConfig signingConfigs.release
//            minifyEnabled false
//            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            testCoverageEnabled true
            signingConfig signingConfigs.debug
        }
    }
    sourceSets {
        main {
            java {
                srcDirs = ["src/main/java", "src/main/java_zxing"];
            }
        }
    }
    lintOptions {
        abortOnError false
    }

    packagingOptions {
        exclude 'LICENSE.txt'
    }
    testOptions {
        reportDir = "$project.buildDir/test/report"
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
}


dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile 'junit:junit:4.12'
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
    androidTestCompile 'com.android.support.test:runner:0.5'
    /*source dependency*/
    // compile project(':weex_sdk')
    compile 'com.taobao.android:weex_sdk:0.16.0'
    compile project(':appframework')
    compile project(':weexplugin')
    compile 'com.google.code.findbugs:jsr305:2.0.1'
    compile 'com.squareup.okhttp:okhttp:2.3.0'
    compile 'com.squareup.okhttp:okhttp-ws:2.3.0'
    compile 'com.squareup.okio:okio:1.0.1'
    compile 'com.alibaba:fastjson:1.1.46.android'
    compile 'com.android.support:support-v4:23.1.1'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.android.support:design:23.1.1'
    compile 'com.android.support:support-annotations:23.1.1'
    compile 'com.taobao.android:weex_inspector:0.12.1'
    compile 'com.journeyapps:zxing-android-embedded:3.4.0'
    // PLUGIN GRADLE EXTENSIONS START
    // PLUGIN GRADLE EXTENSIONS END
}

不知道是什么原因,请高人指点。

阅读 8.7k
3 个回答

WXBridgeManager.java -->1603行 先改回 if (mWXBridge.initFramework(framework, assembleDefaultOptions()) == INIT_FRAMEWORK_OK) {

新手上路,请多包涵

目前Weex考虑包size的问题,将"armeabi-v7a"直接降为armeabi,把abiFilters "armeabi-v7a"删了试试

0.17.0 有问题,我切回0.16.0就好了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进