Android Instant Apps文档在限制功能部分中说明它不能:
我不完全理解上述声明,但听起来它可能不接受任何第三方软件或除了库中给出的任何本地库SDK/NDK.
有人可以帮忙详细说明吗?
我目前正在开发一个现有的Android应用程序,以便创建即时应用程序版本.
我的Android Studio现在分为几个模块:
我的即时应用程序模块可以在手机/平板电脑上编译和启动,但每次因Firebase问题而崩溃.我在logcat中有以下消息:
I/FirebaseInitProvider:FirebaseApp初始化失败
根据文档,Firebase库与Instant Apps兼容,但我很确定我没有将google-services.json文件移动到我项目中的正确位置......
在这里我做了什么:
我将以下类路径依赖项定义到Android Studio项目的build.gradle文件中:classpath'com.google.gms:google-services:3.1.1'
我把google-services.json文件放到我的模块库中(因为文档要求它)
现在,如果我尝试将插件(应用插件:'com.google.gms.google-services')应用到基本模块的build.gradle文件中,我无法编译.我有以下消息:
错误:任务':base:processGooglePlayProductionDebugFeatureGoogleServices'的执行失败.
>找不到包名称'com.mycompany.myapp.base'的匹配客户端
实际上,定义到google-services.json文件中的包名称是应用程序使用的一个(因为根据文档,基本库不能与安装的Android应用程序具有相同的包名称.
我还尝试将插件应用到已安装应用程序的build.gradle文件中,并应用到即时应用程序模块中,将google-services.json文件保留到基本模块中.应用程序编译,但我有日志:"FirebaseApp初始化失败".
所以我尝试将google-services.json文件移动到我的即时应用模块中,但我仍然有日志:"FirebaseApp初始化失败"
我还试图强制初始化从FirebaseApp类调用静态方法initializeApp,但日志仍然存在.
我无法在网上找到实施的例子.实际上,Google Sample存储库不使用google-services.json文件.
预先感谢您的帮助 !
编辑:这里是我的模块的依赖项:
我的base -feature-模块的依赖关系:
implementation project(':businessobject')
feature project(':moduleA')
application project(':app')
Run Code Online (Sandbox Code Playgroud)
我的moduleA -feature-模块的依赖关系:
api project(':base')
api project(':businessobject')
Run Code Online (Sandbox Code Playgroud)
我的应用模块(手机/平板电脑模块)的依赖关系:
implementation (project(':base'))
implementation (project(':businessobject'))
implementation (project(':moduleA'))
Run Code Online (Sandbox Code Playgroud)
我的即时模块(即即时应用模块)的依赖关系:
implementation project(':base')
implementation project(':businessobject')
implementation project(':moduleA')
Run Code Online (Sandbox Code Playgroud) 我正在尝试开发一个多功能即时应用程序.
我有query和autocomplete功能模块.
他们在功能模块中有用于依赖注入的类QueryApplication和AutoCompleteApplication类.
app 模块的清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="net.epictimes.uvindex.app" />
Run Code Online (Sandbox Code Playgroud)
'base'模块的清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="net.epictimes.uvindex">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<meta-data
android:name="aia-compat-api-min-version"
android:value="1" />
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
query 模块的清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="net.epictimes.uvindex.query">
<application android:name=".QueryApplication">
<!--simplified-->
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
autocomplete 模块的清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="net.epictimes.uvindex.autocomplete">
<application android:name=".AutoCompleteApplication">
<!--simplified-->
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
当我尝试构建时,它给我以下错误:
错误:任务':base:processProductionDebugFeatureManifest'的执行失败.
清单合并失败:来自[:query] AndroidManifest.xml:16:9-68的属性应用程序@ name value =(net.epictimes.uvindex.query.QueryApplication)也出现在[:autocomplete] AndroidManifest.xml:14:9 -82 value =(net.epictimes.uvindex.autocomplete.AutoCompleteApplication).
建议:在AndroidManifest.xml:7:5-18:19中添加'tools:replace …
我有一个模块化的应用程序,以支持即时应用程序.
应用模块:
我尝试通过添加以下内容添加Firebase:
com.google.gms:google-services:3.1.1'→到Project Level build.gradlecom.google.firebase:firebase-core:${versions.firebase}"→到基本模块com.google.gms.google-services'→到基本模块的底部当我运行非即时应用程序时,我收到以下错误:
I/FirebaseInitProvider:FirebaseApp初始化失败
E/FA:GoogleService初始化失败,状态:10,来自名称为google_app_id的字符串资源中的Google app id值丢失.
I/FA:应用程序测量正在启动,版本:11720
I/FA:启用调试日志记录运行:adb shell setprop log.tag.FA VERBOSE
I/FA:要启用更快的调试模式事件日志记录运行:adb shell setprop debug.firebase.analytics.app com.punpuf.chacaraselazer.app
E/FA:缺少google_app_id.Firebase Analytics已停用.见https:// goo(...)
E/FA:无法上传.应用测量禁用
I/FA:找不到标记管理器,因此不会使用
当我运行即时应用程序时,我收到以下错误:
V/FA:取消工作.JobID:1799580119
E/FirebaseApp:Firebase API初始化失败.(...)引起:java.lang.NullPointerException:尝试在空对象引用上调用接口方法'void android.app.job.IJobScheduler.cancel(int)'
I/FirebaseInitProvider:FirebaseApp初始化成功
如果我添加以下行:" FirebaseAnalytics.getInstance(this)",它不仅会收到以前的错误,还会崩溃:
E/AndroidRuntime:FATAL EXCEPTION:main进程:com.punpuf.chacaraselazer.app,PID:11273 java.lang.RuntimeException:无法启动活动ComponentInfo {(...)}:java.lang.NullPointerException:尝试调用接口null对象引用上的方法'void android.app.job.IJobScheduler.cancel(int)'
所以我的问题是如何让Firebase Analytics工作,而不是在我的应用的即时和非即时版本上崩溃.
虽然这个问题有点类似于在Android Instant应用程序中FirebaseApp初始化失败,但我的不包含相同类型的错误.
更新:我已经创建了一个新的Firebase项目,并更新了我的google-services.json,但仍然无效.
这是我的gradle文件:
我正在迁移App以支持Instant App.
所以,我将我的项目结构模块化如下

但是当我添加Firebase时,只有firebase Analytics可以使用它.像另一个特点火力地堡验证,存储,公司的FireStore和数据库都没有工作在这里.
我有一个错误:
Firebase App Not Initialized.
Although I have declared FirebaseApp.Initialize(this) through Activity
or Application class.
Run Code Online (Sandbox Code Playgroud)
但Firebase Analytic可以正常工作.


如果有人知道如何解决这个问题,请帮忙.
android firebase-authentication firebase-realtime-database firebase-storage android-instant-apps
互联网上似乎没有任何示例、教程或指南可用于使用 React Native 创建 Android 即时应用程序。
我有一个现有的 React Native 应用程序,我想创建一个 Android 即时应用程序。在 react native 中创建的现有应用程序驻留在目录app 中,而我本地创建的免安装应用程序驻留在目录Instantapp 中。我可以在 Android Studio 中将这个即时应用程序作为即时应用程序运行,它所做的只是在空白屏幕上显示文本“Hello Instant App”。
我可以编写 Android 原生代码来为这个 Instantapp 原生添加更多 ui 和功能,但我想通过原生 React 和使用 javascript 而不是编写原生 Android 代码来做到这一点。我怎样才能做到这一点?
我正在尝试从 mac mini m1 2020 和 Android studio Flamingo 2022.2.1 patch 2 和 Giraffe 2022.3.1 运行即时应用程序,但没有任何效果。
我有一个包含instant.main模块的配置,并选中Deploy as instant app。
但在我的 Windows 电脑上,相同配置和相同版本的 Android studio 上,一切正常
配置: 配置镜像
我尝试使用模拟器和物理设备,但在每种情况下,我都会在“运行”选项卡中显示此内容: “运行选项卡 Img”
现在有了新的 Android studio 版本,当我运行即时模块时,他给我这个错误消息:
could not initialize class com.google.android.instantapps.sdk.lib.ClearcutLogger
我在我的Android应用程序中使用dagger2.即使没有错误,它也不会生成匕首组件类.
我在设置中启用了注释处理器并重新启动我的android工作室,但这对我不起作用.我读了这个线程Dagger2没有生成Daggercomponent类并读取一个apt不推荐使用的线程所以我正在使用annotationProcessor
基本模块build.gradle
apply plugin: 'com.android.feature'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
android {
compileSdkVersion 26
buildToolsVersion "26.0.1"
baseFeature true
defaultConfig {
minSdkVersion 23
targetSdkVersion 26
versionCode 1
versionName "0.0.1"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
application project(':app')
feature project(":main")
feature project(":tv")
api 'com.android.support:appcompat-v7:26.0.2'
api 'com.android.support.constraint:constraint-layout:1.0.2'
api 'com.android.support:design:26.0.2'
api "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
api "org.jetbrains.anko:anko-commons:$anko_version"
api "android.arch.lifecycle:runtime:1.0.0-alpha9"
api "android.arch.lifecycle:extensions:1.0.0-alpha9"
kapt "android.arch.lifecycle:compiler:1.0.0-alpha9"
api 'com.squareup.retrofit2:retrofit:2.3.0'
api "com.squareup.retrofit2:converter-moshi:2.0.0"
api 'com.google.dagger:dagger:2.11'
kapt 'com.google.dagger:dagger-compiler:2.11' …Run Code Online (Sandbox Code Playgroud) 我在获得低于 4mb 的 apk 时遇到了困难。在检查生成的免安装应用 APK(s) 后,我看到 com.google.android.gms.internal 几乎是 1.4mb。我只是找不到这个大块的原因。一定是某种依赖。
我的基本清单文件如下所示:
dependencies {
api "com.android.support:design:$rootProject.supportLib"
api "com.android.support:support-fragment:$rootProject.supportLib"
api "com.android.support:appcompat-v7:$rootProject.supportLib"
api "com.android.support:recyclerview-v7:$rootProject.supportLib"
api "com.android.support:cardview-v7:$rootProject.supportLib"
api 'com.android.support.constraint:constraint-layout:1.0.2'
api "com.google.code.gson:gson:$rootProject.gson"
api "com.google.firebase:firebase-core:$rootProject.googleLibs"
api "com.google.firebase:firebase-ads:$rootProject.googleLibs"
api "com.google.firebase:firebase-appindexing:$rootProject.googleLibs"
api "com.google.android.gms:play-services-auth:$rootProject.googleLibs"
api "com.android.support:multidex:$rootProject.multidex"
api "com.github.bumptech.glide:glide:$rootProject.glide"
annotationProcessor "com.github.bumptech.glide:compiler:$rootProject.glide"
api "com.loopj.android:android-async-http:$rootProject.asyncHttp"
api "org.greenrobot:eventbus:$rootProject.greenRobotEventBus"
api "com.vincentbrison.openlibraries.android:dualcache:$rootProject.dualcache"
api('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') {
transitive = true;
}
Run Code Online (Sandbox Code Playgroud) dependencies android android-gradle-plugin android-instant-apps
我正在尝试将即时应用程序实现到使用Firebase数据库的项目中.我的目标是SDK版本27,因此支持库的版本为27.0.2.
Firebase数据库版本为11.8.0,gms版本为3.1.0.当我尝试同步时,我收到以下错误:
Android dependency 'com.android.support:support-v4' has different
version for the compile (25.2.0) and runtime (27.0.2) classpath. You
should manually set the same version via DependencyResolution
Run Code Online (Sandbox Code Playgroud)
通过在即时应用程序之前显式添加以下依赖项,我能够解决此问题
implementation 'com.android.support:support-v4:27.0.2'
implementation 'com.android.support:support-media-compat:27.0.2'
Run Code Online (Sandbox Code Playgroud)
但是对于即时应用程序,即使我在功能模块(app-base)中有它们,当我尝试构建实际应用程序(com.android.application)时,我再次得到相同的错误.
我可以通过将这些冲突的依赖项移动到应用程序模块gradle文件中来解决这个问题,在这种情况下,同步成功,但是我面临另一个问题,这次是使用清单合并,这会阻止应用程序查找启动器活动:
来自AndroidManifest.xml的属性提供者#com.google.firebase.provider.FirebaseInitProvider@authorities value =(com.iamkaan.packagename.firebaseinitprovider):AndroidManifest.xml中还有10:13-72:33:350-423 value = (com.iamkaan.packagename.base.firebaseinitprovider).建议:在AndroidManifest.xml:8:9-12:39中添加'tools:replace ="android:authorities"'来覆盖.app主要清单(此文件),第9行
最后一个问题在某种程度上与firebase-core依赖关系有关,因为当我改变我的应用程序gradle依赖关系时
implementation project(':app-base')
Run Code Online (Sandbox Code Playgroud)
至
implementation (project(':app-base')) {
exclude group: 'com.google.firebase', module:'firebase-core'
}
Run Code Online (Sandbox Code Playgroud)
我能够运行该应用程序.但是这一次,我开始在运行时遇到以下错误(我第一次打电话FirebaseDatabase.getInstance())
Default FirebaseApp is not initialized in this process com.iamkaan.packagename. Make sure to call FirebaseApp.initializeApp(Context) …Run Code Online (Sandbox Code Playgroud) android firebase android-gradle-plugin firebase-realtime-database android-instant-apps