我已经在某些设备上安装了基于WebView
的应用,而未安装在其他设备上。我在Android版本4,6,7上检查过它。问题不在于Android版本。在某些设备中,它显示为Problem occurs when parsing the package
或Application package installer has stopped unexpectedly
。
注意:我在三星j7 Prime,Mi A1和其他一些问题上遇到了问题。但Mi Note 3,Oppo f3和其他一些人没有问题。
我做错了什么?这是我的activity_main.xml
:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_height="match_parent"
android:layout_width="match_parent">
<im.delight.android.webview.AdvancedWebView
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.MainActivity"
android:id="@+id/webview">
</im.delight.android.webview.AdvancedWebView>
<com.google.android.gms.ads.AdView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/adView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
ads:adSize="BANNER"
ads:adUnitId="id">
</com.google.android.gms.ads.AdView>
</RelativeLayout>
这是我的AndroidManifest.xml
:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
这是我的build.gradle
:
buildscript {
repositories {
maven { url 'https://plugins.gradle.org/m2/'}
}
dependencies {
classpath 'gradle.plugin.com.onesignal:onesignal-gradle-plugin:0.8.1'
}
}
apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'
repositories {
maven { url 'https://maven.google.com' }
}
allprojects {
repositories {
maven { url "https://jitpack.io" }
}
}
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
defaultConfig {
applicationId "com.rimikri.smartpedi"
minSdkVersion 21
targetSdkVersion 26
versionCode 1
versionName "1.0"
multiDexEnabled true
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
//OneSignal
manifestPlaceholders = [
onesignal_app_id: 'id',
onesignal_google_project_number: 'REMOTE'
]
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
compile 'com.onesignal:OneSignal:[3.8.3, 3.99.99]'
compile 'com.github.delight-im:Android-AdvancedWebView:v3.0.0'
compile 'com.google.firebase:firebase-core:15.0.2'
implementation 'com.google.android.gms:play-services-ads:15.0.0'
compile 'com.google.firebase:firebase-ads:15.0.0'
implementation 'com.facebook.android:audience-network-sdk:4.27.1'
implementation 'com.google.ads.mediation:facebook:4.27.1.0'
}
apply plugin: 'com.google.gms.google-services'
提前感谢您的建议。
答案 0 :(得分:0)
主要是由于Android版本不同,
尝试在manifest.xml中定义最低和目标android API级别
e.g。
<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="27" />
答案 1 :(得分:0)
您的最低sdk等级为21 minSdkVersion 21
您是否有可能仅支持Android 5.0 (LOLLIPOP)
及以上的视图组件?您应该运行Analyze代码并检查不会导致任何运行时错误的xml错误
另外,您使用任何第三方库吗?其中一些可能指定了minSdk版本,它们可能低于您应用的minSdk
答案 2 :(得分:0)
这可能是因为您尝试在API级别低于21(即Lollipop)的设备上安装应用程序,而您的应用程序的minSdkVersion =“21”。 因此,对于在api级别21以下的设备上使用应用程序,在您的应用程序级别build.gradle文件中将应用程序的minSdkVersion降级为16(minSdkVersion =“16”)。
答案 3 :(得分:0)
因为它可以与某些设备配合使用并且不能与其他设备配合使用我很确定这是一个尺寸问题,你已经在某处放置了图像或图标,但它不适合某些设备尺寸