在编译和签署我的应用程序的发布版本后,我很难从清单文件中删除不必要的(权限)内容.我只是不希望任何与其他库的清单文件合并的东西.我有自己的清单文件,就是这样.不应该合并其他清单
谁知道如何完全禁用清单合并?
我已成功在Android工作室项目中实现了crosswalk webview项目.基本上通过以下链接:https://diego.org/2015/01/07/embedding-crosswalk-in-android-studio/
熟悉实施人行横道的人知道应用程序大小增加了+ - 20-30 mb.出于这个原因,我一直在尝试整合精简版的人行横道.这是+ - 10 MB,不幸的是没有成功.
正常的人行横道项目有一个maven版本,可在 https://download.01.org/crosswalk/releases/crosswalk/android/maven2/org/xwalk/xwalk_core_library/获取
Lite版本还有一个AAR版本,位于https://download.01.org/crosswalk/releases/crosswalk-lite/android/canary/, 但没有POM文件,我无法在Android Studio中使用它.
现在我一直在尝试手动下载crosswalk-lite版本.我创建了一个库项目,复制了所有相关文件,创建了gradle文件并将其包含在一个小型测试应用程序中.到目前为止,一切似乎都没问题.应用程序编译.我的应用程序内部提供了XWalkView等所有类.除了webview完全是黑色外,运行应用程序也可以.
现在我认为它与libxwalkcore.so文件有关,它不会以某种方式加载.放置在每个可以想象的文件夹(jar,jniLibs,lib等)中.不起作用.任何日志都没有错误.
如果有人已经成功获得了在Android工作室项目中工作的精简版本,我有问题.
顺便说一句.crosswalk-lite库应用程序的gradle文件包含:
dependencies {
compile files('libs/xwalk_core_library_java_library_part.jar')
compile files('libs/xwalk_core_library_java_app_part.jar')
}
Run Code Online (Sandbox Code Playgroud) 几个星期以来,我收到了来自用户的以下崩溃报告
FATAL EXCEPTION: AdWorker #1
java.lang.NoSuchMethodError: java.io.IOException.<init>
at com.google.android.gms.internal.g.f(Unknown Source)
at com.google.android.gms.internal.g.b(Unknown Source)
at com.google.android.gms.internal.e.a(Unknown Source)
at com.google.android.gms.internal.e.a(Unknown Source)
at com.google.android.gms.internal.bq.ac(Unknown Source)
at com.google.android.gms.internal.cg$1.run(Unknown Source)
at com.google.android.gms.internal.ch$1.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
at java.lang.Thread.run(Thread.java:1096)
Run Code Online (Sandbox Code Playgroud)
除了它与谷歌广告/云服务有关,我不知道它来自哪里.直到昨天我才重现它,我启动了一个10英寸的模拟器并立即看到了问题.删除部分代码后,我认为以下部分是问题所在.
public void onActivityCreated(Bundle savedInstanceState) {
............
AdView adView = (AdView)getActivity().findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.addTestDevice("CED2A4FD2C192C08557081CC37AA9E54")
.build();
adView.loadAd(adRequest);
}
Run Code Online (Sandbox Code Playgroud)
奇怪的是它只发生在10英寸或更高的设备上.我测试了各种不同的设备/版本.该问题仅发生在10英寸或更大的设备上.Android版本并不重要.2.2或4.4它不断崩溃.
根据我的理解,我没有针对特定设备尺寸的任何不同布局文件夹.我的广告定义的xml如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:id="@+id/mainContainer"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/titleContainer"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
</LinearLayout>
<com.viewpagerindicator.TabPageIndicator
android:id="@+id/indicator"
style="@style/tabsbackground"
android:layout_width="fill_parent" …Run Code Online (Sandbox Code Playgroud) 我遇到了一个构建问题,其中 gradle 抱怨“getMergedManifest failed manifest merge failed”
日志中的错误显示如下几行:
WARN - .tools.idea.model.ManifestInfo - getMergedManifest failed Manifest merger failed : Attribute provider#com.google.firebase.provider.FirebaseInitProvider@authorities value=(com.xxxxxxxxxx.feature_team.firebaseinitprovider) from AndroidManifest.xml:10:13-72
is also present at AndroidManifest.xml:36:559-633 value=(com.xxxxxxxxx.base.firebaseinitprovider).
Suggestion: add 'tools:replace="android:authorities"' to <provider> element at AndroidManifest.xml:8:9-12:39 to override.
Run Code Online (Sandbox Code Playgroud)
我想在这里做什么?我的任何清单文件中都没有任何权限部分。当在 2 个功能模块中导入相同的共享库时,会出现错误,结果取决于某些 google 库。我确信所有版本的外部库都是相同的。有谁知道如何解决这个问题?
- - - - 编辑。仍然有错误------。
......./base/src/main/AndroidManifest.xml:70:13-46 Error:
Attribute activity#com.facebook.LoginActivity@splitName value=(feature_match) from [:feature_match] AndroidManifest.xml:70:13-46
is also present at [:feature_topvoters] AndroidManifest.xml:73:13-50 value=(feature_topvoters).
Suggestion: add 'tools:replace="android:splitName"' to <activity>
element at AndroidManifest.xml:68:9-71:75 to override.
......./base/src/main/AndroidManifest.xml:74:13-46 Error:
Attribute activity#com.github.gorbin.asne.core.OAuthActivity@splitName value=(feature_match) from …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
更新到最新版本之后,构建项目时出现一个奇怪的错误:
[:feature_x, :feature_y] all package the same library [com.github.PhilJay:MPAndroidChart].
Run Code Online (Sandbox Code Playgroud)
我确实在两个功能中都添加了该库。它们设置为依赖项,例如:
api "com.github.PhilJay:MPAndroidChart:$rootProject.MPAndroidChart"
Run Code Online (Sandbox Code Playgroud)
这有什么问题?
我们拥有超过一百万订阅者的应用程序面临着 FCM 的巨大交付问题。最近情况变得更糟,服务几乎不再工作。我们收到如下错误:
{ code: 'messaging/message-rate-exceeded',
message: 'Topic quota exceeded.' },
codePrefix: 'messaging' }
Run Code Online (Sandbox Code Playgroud)
我们经常收到这个错误。在欧盟/美国晚上,情况似乎更糟。在某些情况下,超过 90% 的通知都失败了。我们正在与 firebase 支持团队联系,但到目前为止似乎没有解决方案。不过,它为我们提供了大量信息和一些有用的事实:
他们还在https://firebase.google.com/docs/cloud-messaging/concept-options#topics_throttling更新了他们的文档
所以我们知道消息速率限制和扇出机制。在我们的例子中,我们每小时大约有 6000 个不同的主题发送请求,每个主题平均有 10k 订阅者。单个用户每小时不会收到超过 50-100 条通知。我们相信我们没有达到 FCM 设定的限制。
回到 GCM 时代,一切正常。所以我们对目前的情况很不满意。该应用程序的核心功能现在非常糟糕。而且似乎没有解决方案。
我们正在考虑改用 SSE 解决方案。有一个关于有人成功离开 FCM 的故事 https://f-droid.org/en/2018/09/03/replacing-gcm-in-tutanota.html 但由于谷歌最近很难拥有后台进程正在运行,我想知道其他有类似经历的人做了什么。或者我们还能解决这个问题吗?
我正在使用节点 firebase admin 向 Android 设备发送消息。所有作品。除非我尝试向多个主题发送消息。在下面的示例代码中,我只是订阅了 2 个主题,然后直接向某个条件中的多个主题发送通知。我的手机上没有任何东西。当您只发送到一个主题时,通知成功到达。我不明白为什么它不起作用。Firebase 管理员没有错误响应。只是:“项目/admob-app-id-xxxx/messages/xxxx”
var admin = require("firebase-admin");
var serviceAccount = require("./serviceAccountKey.json");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://admob-app-id-xxxxx.firebaseio.com"
});
var registrationTokens = ["xxxxx"];
var topica = "AAA";
var topicb = "BBB";
var data = {};
var message = {
condition : "'"+topica+"' in topics || '"+topicb+"' in topics",
data: {'message':JSON.stringify(data)},
android: {
ttl: 36000 * 1000,
priority: 'normal',
collapseKey: "test"
}
};
admin.messaging().subscribeToTopic(registrationTokens, topica)
.then(function(response) {
admin.messaging().subscribeToTopic(registrationTokens, topicb)
.then(function(response) {
admin.messaging().send(message, dryRun)
.then((response) => {
console.log('success', …Run Code Online (Sandbox Code Playgroud)