我在flutter中使用zego Cloud开发了一个简单的语音通话应用程序,用于一对一的语音通话。我想在我的应用程序中使用此功能,但问题是此功能的应用程序大小几乎为 80 mb。为什么会变得这么大?是由于zego cloud sdk还是其他原因?他们有什么方法可以减少应用程序的大小。如果没有,您可以建议我使用带有颤动通知的语音通话的另一种选择吗?下面给出的是我的代码-
import 'package:flutter/material.dart';
import'package:zego_uikit_prebuilt_call/zego_uikit_prebuilt_call.dart';
import 'dart:math' as math;
final String userID=math.Random().nextInt(1000).toString();
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget{
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: Audiocalling(),
);
}
}
class Audiocalling extends StatefulWidget {
@override
State<Audiocalling> createState() => _AudiocallingState();
}
class _AudiocallingState extends State<Audiocalling> {
final _controller=TextEditingController();
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("ZEGOCLOUD Audio Calling"),
centerTitle: true,
),
body:Column(
children: [
TextFormField(
controller: _controller,
decoration: InputDecoration(
labelText: "Enter UId"
),
),
ElevatedButton(onPressed: (){
Navigator.push(context, MaterialPageRoute(builder: (builder)=>cllingId(CallingId: _controller.text.toString())));
}, child: Text("Join")),
],
)
);
}
}
class cllingId extends StatelessWidget {
final String CallingId;
const cllingId({required this.CallingId});
@override
Widget build(BuildContext context) {
return SafeArea(child: ZegoUIKitPrebuiltCall(appID: 1205379035,
appSign: 'fe1e7fcc992c93ef405d505e275a4b99f02a158eb6bb3fc313b0652ac59a19e3',
callID: CallingId,
userID: userID,
userName:"user_$userID" ,
config: ZegoUIKitPrebuiltCallConfig.oneOnOneVoiceCall()
));
}
}
我尝试了解应用程序的大小并询问chatgpt,但我没有得到任何解决方案。我也期待任何其他选择。
尝试将其添加到您的 app/build.gradle
minifyEnabled false
shrinkResources false
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
创建一个专业公会文件添加此
-keep class **.zego.** { *;}
-keep class **.**.zego_zpns.** { *;}
-keep class **.**.zpns.** { *;}
-keep class **.**.hms.** { *;}
-keep class **.heytap.** { *;}
-keep class **.vivo.** { *;}
-keep class **.**.mipuch.** { *;}
# Retrofit
-keep class retrofit2.** { *; }
-keepattributes Signature
-keepattributes *Annotation*
# Firebase
-keep class com.google.firebase.** { *; }
-dontwarn com.google.firebase.**
将其添加到您的 gredle.properties
android.enableR8.fullMode=true
android.enableR8=true