我是安卓世界的新手,最近遇到了一个很奇怪的问题,所以想和大家分享一下。如果你知道解决方法,请指导我。
我已经在远程Azure VM中安装并配置了wampserver(mysql、php、apache),并且我已经打开了所有端口进行访问。请参见入站和出站访问的图片。
现在的问题是:当我通过android studio和数据线在手机上安装应用程序(调试模式)时,它可以从远程mysql数据库插入和获取/下载数据(通过所有php API脚本)......这意味着我的应用程序、php代码、azure vm设置和访问都没有问题。
但是当我在playstore发布了相同的应用程序,从那里下载并安装在我的同一个移动的上,那么它就不能获取数据,但是它只能插入数据到相同的mysql数据库中,而获取所有的php-api都只返回空值,因为我所有的回收视图都显示在手机上,但没有数据。
在许可证或清单文件中,我应该注意什么?如果你知道答案,请让我知道。非常感谢你提前所有。
仅供参考,清单文件:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission-sdk-23 android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:preserveLegacyExternalStorage="true"
android:requestLegacyExternalStorage="true"
android:roundIcon="@mipmap/ic_launcher"
android:supportsRtl="true"
android:usesCleartextTraffic="true"
tools:targetApi="31">
构建.gradle文件:
plugins {
id 'com.android.application'
id 'com.google.gms.google-services'
id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin'
}
android {
namespace 'com.project.localshop'
compileSdk 33
defaultConfig {
applicationId "com.project.localshop"
minSdk 21
targetSdk 33
versionCode 5
versionName "3.2.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
buildFeatures {
viewBinding true
}
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'com.google.android.material:material:1.8.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.annotation:annotation:1.5.0'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.5.1'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1'
implementation 'com.google.firebase:firebase-auth:21.1.0'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
implementation 'androidx.recyclerview:recyclerview:1.2.1'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'com.squareup.retrofit2:retrofit:2.5.0'
implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
implementation 'com.github.bumptech.glide:glide:4.14.2'
annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'
implementation 'com.github.smarteist:autoimageslider:1.4.0'
implementation 'com.etebarian:meow-bottom-navigation-java:1.2.0'
implementation "androidx.viewpager2:viewpager2:1.0.0"
implementation "com.google.code.gson:gson:2.8.6"
implementation 'com.google.android.material:material:1.9.0-alpha01'
implementation 'com.karumi:dexter:6.2.3'
implementation 'com.google.android.gms:play-services-maps:18.1.0'
implementation 'com.google.android.gms:play-services-location:21.0.1'
implementation 'com.makeramen:roundedimageview:2.3.0'
implementation 'com.github.JakeWharton:ViewPagerIndicator:2.4.1'
//noinspection GradleCompatible
implementation 'com.android.support:design:27.1.0'
implementation "com.airbnb.android:lottie:5.2.0"
implementation 'de.hdodenhof:circleimageview:3.1.0'
implementation 'com.sothree.slidinguppanel:library:3.4.0'
implementation 'com.android.volley:volley:1.2.1'
implementation 'androidx.browser:browser:1.5.0'
//implementation 'com.cashfree.pg:android-sdk:1.7.28'
implementation platform('com.google.firebase:firebase-bom:31.2.2')
implementation 'com.google.firebase:firebase-analytics'
}
1条答案
按热度按时间zte4gxcn1#
经过长时间的搜索,我得到了答案。问题出在build.gradle文件中的minifyEnabled = true选项。将其设置为false,这样Android就不会混淆代码,列名称,然后将其发送到数据库。但再次使其为false不利于应用程序,因为其他人可以解码并从谷歌playstore看到您的代码。这就是为什么使minifyEnabled = true,并使用适当的R8技术,添加@在代码函数中保留关键字。
有关详细信息,请观看此视频:
https://www.youtube.com/watch?v=bgpyuuzMlo0