我相信这是一个内置功能,但当我搜索和查看文档时却找不到任何信息。是否有启用multidex构建的标志?
另外: 有没有办法查看哪些库正在影响您的方法数量?达到64k限制让我很惊讶。
我相信这是一个内置功能,但当我搜索和查看文档时却找不到任何信息。是否有启用multidex构建的标志?
另外: 有没有办法查看哪些库正在影响您的方法数量?达到64k限制让我很惊讶。
对于RN 0.59+和使用Gradle 3.4.1的情况,这里的所有答案都没有完整的解决方案。我按照以下步骤操作,成功了:
In android/app/build.gradle
, update the dependency
block:
dependencies {
// ... your other dependencies
// Multidex
implementation 'com.android.support:multidex:1.0.3'
}
And also update the defaultConfig
in the android
block:
defaultConfig {
// ... your `applicationId`, etc.
multiDexEnabled true
}
MainApplication.java
, replace
import android.app.Application;
import android.support.multidex.MultiDexApplication;
OR if you're on RN 0.60+ or have manually upgraded to AndroidX then use this instead:import androidx.multidex.MultiDexApplication;
MainApplication.java
, replace
public class MainApplication extends Application implements ReactApplication {
public class MainApplication extends MultiDexApplication implements ReactApplication {
androidx.multidex.MultiDexApplication
,而不是 android.support.multidex.MultiDexApplication
。这是对我有效的导入语句。 - buddhivRN 0.60+
的提示帮了很多忙!! - Haltimplementation 'com.android.support:multidex:1.0.3'
在使用 RN 0.60+ / AndroidX 的情况下是否有效?在这种情况下,也许我们应该使用 implementation 'androidx.multidex:multidex:2.0.1'
。https://developer.android.com/studio/build/multidex.html - felipeptcho在其他地方找到了答案。这与为任何普通的Android项目启用它没有任何区别。
android {
....
defaultConfig {
...
multiDexEnabled true
}
对于方法数量,这个网站就行了:http://inloop.github.io/apk-method-count/
android/app/build.gradle
android {
....
defaultConfig {
...
multiDexEnabled true
}
import android.support.multidex.MultiDexApplication;
public class MyApplication extends MultiDexApplication{
...
}
import android.support.multidex.MultiDexApplication;
- Alex Lévy由于Application
必须扩展ReactApplication
,因此我采用了与此处建议相似的方法,该方法在Android Developer关于multidex的参考文献中的第2点有记录,以连接到基本上下文:
app/build.gradle
android {
compileSdkVersion projectCompileSdkVersion // Or your version
defaultConfig {
minSdkVersion projectMinSdkVersion // Or your version
targetSdkVersion projectTargetSdkVersion // Or your version
multiDexEnabled true // *
}
dexOptions {
jumboMode true // *
}
}
dependencies {
compile 'com.android.support:multidex:1.0.3' // https://mvnrepository.com/artifact/com.android.support/multidex
}
MainApplication.java
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
然而,如果您的minSdkVersion设置为20或更低,则必须按以下方式使用multidex支持库:
android {
defaultConfig {
...
minSdkVersion 15
targetSdkVersion 26
multiDexEnabled true
}
...
}
dependencies {
compile 'com.android.support:multidex:1.0.3'
}
步骤:1
打开 /android/app/build.gradle
文件
android {
...
defaultConfig {
...
multiDexEnabled true <-- ADD THIS LINE
}
}
步骤二:
在同一文件中找到dependencies
。
dependencies {
...
implementation 'androidx.multidex:multidex:2.0.1' <-- ADD THIS LINE
...
}
注意:要了解多 Dex 的最新版本,请查看 Multidex 最新版本。
步骤 3:
打开 MainApplication.java
文件,位于...
android/app/src/main/java/.../MainApplication.java
添加 multidex 导入
// ... all your other imports here
import androidx.multidex.MultiDexApplication; <-- ADD THIS LINE
我们的类定义需要像下面这样扩展extends MultiDexApplication
之前(在我的情况下)
public class MainApplication extends Application implements ReactApplication {
之后
public class MainApplication extends MultiDexApplication implements ReactApplication {
将 Application
替换为 MultiDexApplication
步骤 4(可选)
清理项目
希望这有所帮助 ;)