Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何为react native启用多索引?_Java_Android_React Native - Fatal编程技术网

Java 如何为react native启用多索引?

Java 如何为react native启用多索引?,java,android,react-native,Java,Android,React Native,我很确定这是一个内置功能,但我在搜索或文档中找不到任何东西。启用多索引的建筑是否有标志 另一方面: 有没有办法知道哪些库会影响你的方法计数?达到64k上限是一个相当令人惊讶的问题。在其他地方找到了答案。这与为任何常规Android项目启用它没有什么不同 android { .... defaultConfig { ... multiDexEnabled true } 至于方法计数,这个网站的诀窍是:android/app/build.gr

我很确定这是一个内置功能,但我在搜索或文档中找不到任何东西。启用多索引的建筑是否有标志

另一方面:
有没有办法知道哪些库会影响你的方法计数?达到64k上限是一个相当令人惊讶的问题。

在其他地方找到了答案。这与为任何常规Android项目启用它没有什么不同

android {
    ....
    defaultConfig {
        ...
        multiDexEnabled true
    }

至于方法计数,这个网站的诀窍是:

android/app/build.gradle

android {
    ....
    defaultConfig {
        ...
        multiDexEnabled true
    }
如果您使用的是Multidex,您的应用程序应该扩展Multidex应用程序而不是应用程序

MyApplication.java

import android.support.multidex.MultiDexApplication;

public class MyApplication extends MultiDexApplication{
     ...
}

但是,如果minSdkVersion设置为20或更低,则必须按如下方式使用multidex支持库:

android {
    defaultConfig {
        ...
        minSdkVersion 15 
        targetSdkVersion 26
        multiDexEnabled true
    }
    ...
}

dependencies {
  compile 'com.android.support:multidex:1.0.3'
}

由于
应用程序
必须扩展
应用程序
,因此我使用了一种类似的方法,在Android Developer的第2点中对其进行了说明,以附加到基本上下文:

app/build.gradle

android {
    ....
    defaultConfig {
        ...
        multiDexEnabled true
    }
MainApplication.java

import android.support.multidex.MultiDexApplication;

public class MyApplication extends MultiDexApplication{
     ...
}

对于RN 0.59+和Gradle 3.4.1,这里的答案都没有完整的解决方案。我做到了以下几点,效果很好:

  • 在android/app/build.gradle中,更新
    依赖项
    块:

    dependencies {
        // ... your other dependencies
    
        // Multidex
        implementation 'com.android.support:multidex:1.0.3'
    }
    
    defaultConfig {
        // ... your `applicationId`, etc.
        multiDexEnabled true
    }
    
    并更新
    android
    块中的
    defaultConfig

    dependencies {
        // ... your other dependencies
    
        // Multidex
        implementation 'com.android.support:multidex:1.0.3'
    }
    
    defaultConfig {
        // ... your `applicationId`, etc.
        multiDexEnabled true
    }
    
  • MainApplication.java
    中,替换
    导入android.app.Application;
    

    导入android.support.multidex.multidex应用程序;
    
    如果您使用的是RN 0.60+或手动升级到RN 0.60+,请改用此选项:
    导入androidx.multidex.multidex应用程序;
    
  • 仍在
    MainApplication.java中,请替换
    
    public类MainApplication扩展应用程序实现应用程序{
    
    具有
    public类main应用程序扩展了多索引应用程序{
    

  • 您想仅为React Native启用multidex?这还不够。您需要实现渐变依赖性。那么如何将multidex应用程序导入主应用程序文件?@DanielBarde
    import android.support.multidex.multidex应用程序;
    android.support.multidex.multidex应用程序无法强制转换为com.facebook.React。ReactApplication@octohedrontry公共类MainApplication扩展多索引应用程序实现应用程序{对于那些在回答这个问题后仍然存在问题的人,请检查以下行是否正确。导入应该是
    androidx.multidex.MultiDexApplication
    。而不是
    android.support.multidex.MultiDexApplication
    。这是对我有效的导入语句。Genius!谢谢:-)添加了注释和替代说明out RN 0.60+/AndroidX。谢谢@buddhiv!正如下面所建议的,只有当minSdkVersion为20或更低时才需要这些步骤。如果可以,将此版本提高到21将解决此问题。参考:@buddhiv非常感谢,您救了我