我正在尝试向 Play 商店发布一个基于 Flutter 的 Android 应用程序。
当我在 Play 商店控制台中查看我的版本时,我收到以下警告:
您必须先完成广告 ID 声明,然后才能发布面向 Android 13 (API 33) 的应用。我们将使用此声明在 Play Console 中提供保护措施,以适应 Android 13 中广告 ID 的更改。
面向 Android 13 或更高版本并使用广告 ID 的应用必须在清单中包含 com.google.android.gms.permission.AD_ID 权限。
我已遵循建议并将以下内容添加到我的 android/app/src/main/AndroidManifest.xml 中:
</application>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
</manifest>
Run Code Online (Sandbox Code Playgroud)
当我“flutter clean”、创建并上传新包时,我仍然收到相同的警告。有谁知道如何解决这个警告?
注意:我已使用 google_mobile_ads 插件将 Google Ads 合并到我的应用中。
卢克
我已经使用 Mocktail 编写了一个简单的 HTTP get 测试来模拟 HTTP 客户端。当我在测试中调用 get 方法时,我收到“类型‘Null’不是类型‘Future’的子类型”。
有人知道为什么会这样吗?
这是测试:
class MockHttpClient extends Mock implements http.Client {}
void main() {
late IdRemoteDataSourceImpl dataSource;
late MockHttpClient mockHttpClient;
setUp(
() {
mockHttpClient = MockHttpClient();
dataSource = IdRemoteDataSourceImpl(client: mockHttpClient);
},
);
group('Get id', () {
test(
'when response code is 200',
() async {
final url = Uri.parse('https://api.test.com/');
const tUsername = 'username';
final accountJson = json.decode(
fixture('account.json'),
// ignore: avoid_as
) as Map<String, dynamic>;
final tIdModel = IdModel.fromJson(accountJson);
// arrange
when(() …
Run Code Online (Sandbox Code Playgroud) 我似乎无法找到一种方法来小部件测试 TextFormField 是否将 obliqueText 设置为 true 或 false。
我知道 TextFormField 是 TextField 的包装器,而 obliqueText 是 TextField 的属性,但无法想出在我的测试中访问 obliqueText 的方法。
因此,当我尝试访问 obscureText 时,我收到消息: The getter 'obscureText' isn't Defined for the type 'TextFormField'
有人知道如何测试 TextFormField 的 obliqueText 属性吗?
testWidgets(
'show and hide password fields',
(
WidgetTester tester,
) async {
await tester.pumpWidget(
materialWrapper(
child: emailSignUpScreen,
),
);
final Finder passwordTextFormField = find.byKey(
const Key(
'passwordTextFormField',
),
);
final TextFormField input =
tester.widget<TextFormField>(passwordTextFormField);
expect(input.obscureText, true);
},
);
Run Code Online (Sandbox Code Playgroud)