我刚刚成功签署了一个我正在尝试重新发布到商店的 android 应用程序。我不记得是否必须在 jarSigner 之后运行 zipAlign?或者在我运行 jarSigner 之后我一切都好?
我在这里查看:http : //developer.android.com/guide/publishing/publishing.html并没有真正在“在 Google Play 上发布更新”部分找到答案。
另外,当我上传新的 apk 时,是否必须停用旧的 apk?或者只是上传旧的?
谢谢!
我即将在我的应用商店上发布一个发布版本。调试版本(我用我的手机代替模拟器),完美运行,没有任何问题。
然而,“签名 APK”版本根本没有连接到后端。
我如何在 Android Studio 中生成签名的 APK:
构建 --> 生成签名的 APK
创建一个新的密钥库(使用密码)
构建类型 == 发布。
通过移动实际的 APK 文件本身并允许从未知来源安装,将其安装到手机上。
我的标准请求(IE Signin、getUser、GetSomethingX)都出错了。这被证明是一个比我最初想象的更大的问题,因为我无法弄清楚如何测试日志打印语句并在日志猫中查看它们。当然,我可以使用 Toasts,但是尝试以这种方式阅读它有点痛苦。我编写的实际代码的调试版本和发布版本之间没有区别。
问题:为什么我的 APK 的调试版本可以完美运行,但构建/发布版本却不能?我一直在与后端的网络人员来回走动,我们不确定谁有错。应用程序的调试版本和发布版本之间是否存在本质上的不同,可能会阻止其正常工作?
有人知道吗?
谢谢大家!
-Sil
我想生成一个签名的apk。但我达到了 64k 方法的限制,所以我搜索了一些解决方案,其中之一是使用 proguard。我像这样编辑了 build.gradle:
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试生成签名的 apk 时,我收到很多警告:
Warning:com.akexorcist.roundcornerprogressbar.TextRoundCornerProgressBar$2: can't find referenced method 'android.widget.TextView access$000(com.akexorcist.roundcornerprogressbar.TextRoundCornerProgressBar)' in program class com.akexorcist.roundcornerprogressbar.TextRoundCornerProgressBar
Warning:com.akexorcist.roundcornerprogressbar.TextRoundCornerProgressBar$2: can't find enclosing method 'void setTextProgressAlign()' in program class com.akexorcist.roundcornerprogressbar.TextRoundCornerProgressBar
Warning:com.github.mikephil.charting.data.realm.base.RealmBarLineScatterCandleBubbleDataSet: can't find referenced class io.realm.RealmResults
Warning:com.github.mikephil.charting.data.realm.base.RealmBarLineScatterCandleBubbleDataSet: can't find referenced class io.realm.RealmObject
Warning:com.github.mikephil.charting.data.realm.base.RealmBaseDataSet: can't find referenced class io.realm.Sort
Warning:com.github.mikephil.charting.data.realm.base.RealmBaseDataSet: can't find referenced class io.realm.RealmResults
Warning:com.github.mikephil.charting.data.realm.base.RealmBaseDataSet: can't find referenced class io.realm.Sort
Warning:com.github.mikephil.charting.data.realm.base.RealmBaseDataSet: can't find referenced class io.realm.RealmResults
Warning:com.github.mikephil.charting.data.realm.base.RealmBaseDataSet: …
Run Code Online (Sandbox Code Playgroud) 我是 android 开发的新手,需要为我在 Xamarin Studios 中制作的 android 应用程序创建一个 apk 文件,以便我的同行可以在他的设备上测试它。如何创建apk文件?
我想在 travis 上签署 Android APK。
为了保护密钥库凭据,我想使用环境变量。
不幸的是,当我尝试这个时,我收到以下错误
signingConfigs {
release{
storeFile file("path/to/release.keystore")
storePassword $System.env.STOREPASS
keyAlias "appAlias"
keyPassword $System.env.KEYPASS
}
}
Run Code Online (Sandbox Code Playgroud)
错误:(67, 0) 无法获取 com.android.build.gradle.internal.dsl.SigningConfig 类型的 SigningConfig_Decolated{.....} 的未知属性“$System”。
或者还有其他方法可以做到这一点吗?
我问的原因与 Google 最近关于需要支持 64 位设备的应用程序的通信https://developer.android.com/distribute/best-practices/develop/64-bit有关。根据文章中提到的建议,我非常有信心我的应用程序支持 64 位设备。当我从 Google Play 安装它时,它的工作原理与预期完全一致,但是当我在 64 位硬件上使用 ADB 命令在本地测试 APK 时(正如 Google 在本节“在 64 位硬件上测试您的应用程序”中建议的那样),我的应用程序存在用户界面问题。我不确定为什么它的行为不一致。
是否有可能在使用 Google Play 时安装了 32 位版本,因此工作正常?我担心我的应用程序在真正安装为 64 位时实际上可能会出现问题,因此我们将不胜感激对上述不一致之处的任何澄清。
我正在测试的设备是运行 Android 7.0 的“Moto X Pure Edition”。它拥有采用ARM架构的Snapdragon 808 CPU。另一方面,我们没有看到任何“/lib”文件夹,正如 Google 文章建议检查的那样。我们的应用程序是混合的,使用 Ionic v3 构建。
假设我的学校有 2 个应用程序:
student.apk:学生登录,查看成绩,查看上课时间,做很多事情。
Teacher.apk:教师登录、发布成绩、出席名单等
是否可以只创建 1 个 apk,并带有登录屏幕,检测它是学生还是老师,然后发布正确的 apk?
基本上我要问的是我是否可以将这两个 apk(学生和老师)放在一个代码中(login.apk)。
这些应用程序完全不同,合并起来比合二为一非常困难,这就是为什么我想在一个简单的“login.apk”中启动它们
我有一个很大的问题。我浪费了很多时间来尝试构建一个我作为 APK 制作的小游戏。我将构建平台切换到 android,安装了 JDK、NDK 和 SDK 工具,它应该可以工作。但是,当 unity 为“Building Gradle Project”时,会弹出一个错误:1 个异常由工作人员引发:有关详细信息,请参阅控制台。
然后控制台中出现 60 个错误。
我已经尝试重新安装 JDK、Android Studio、Unity Hub 中的 apk 工具,并且我还重新安装了 Unity 本身(完全)。
所以,这是最重要的错误:
CommandInvokationFailure:Gradle 构建失败。D:/Unity/2019.2.3f1/Editor/Data/PlaybackEngines/AndroidPlayer/Tools\OpenJDK\Windows\bin\java.exe -classpath "D:\Unity\2019.2.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\ gradle\lib\gradle-launcher-5.1.1.jar" org.gradle.launcher.GradleMain"-Dorg.gradle.jvmargs=-Xmx4096m""assembleRelease"
标准错误[
失败:构建失败并出现异常。
出了什么问题:任务“:checkReleaseDuplicateClasses”执行失败。
工作人员引发了 1 个异常:java.lang.RuntimeException:java.lang.RuntimeException:在模块classes.jar(:UnityAds:)和classes.jar(:unity-ads:)中找到重复的类com.unity3d.ads.BuildConfig在模块classes.jar (:UnityAds:) 和classes.jar (:unity-ads:) 中找到重复的类com.unity3d.ads.IUnityAdsListener 在模块classes.jar (:UnityAds:) 中找到重复的类com.unity3d.ads.UnityAds: ) 和classes.jar (:unity-ads:) 在模块classes.jar (:UnityAds:) 和classes.jar (:unity-ads:) 中找到重复的类com.unity3d.ads.UnityAds$FinishState 重复的类com.unity3d在模块classes.jar (:UnityAds:) 和classes.jar (:unity-ads:) 中找到.ads.UnityAds$PlacementState 在模块classes.jar (:UnityAds:) 中找到重复的类com.unity3d.ads.UnityAds$UnityAdsError和classes.jar (:unity-ads:) 模块classes.jar (:UnityAds:) 和classes.jar (:unity-ads:) 重复类com.unity3d.ads.mediation.IUnityAdsExtendedListener 和classes.jar (:unity-ads:) 重复类com.unity3d。在模块classes.jar (:UnityAds:)和classes.jar (:unity-ads:)中找到ads.metadata.InAppPurchaseMetaData 在模块classes.jar (:UnityAds:)和中找到重复的类com.unity3d.ads.metadata.MediationMetaData在模块classes.jar (:UnityAds:) 和classes.jar (:unity-ads:) 模块中找到重复的类com.unity3d.ads.metadata.MetaData 重复的类com.unity3d.ads …
当我运行此命令时
D:\Flutter\project flutter\navagat>flutter build apk --release
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
该系统找不到指定的路径。
我以前开发过一个应用程序,现在我找不到我的应用程序源代码。
我想对我的应用程序进行一些更改。
现在我只有我的密钥库(jks 文件),我之前用它来签署我的应用程序。
我使用在线 Apk Decompiler来反编译我的应用程序,但它没有给出我想要的结果。我需要它来编辑我的代码并将其提供给客户,但它为我提供了如下所示的代码预览,其中包含难以理解的类和方法名称。
我反编译的APK文件夹目录
我的代码预览
我知道这个问题是为了在 gradle 中将发布模式的 minify enabled设置为 true 。
有什么方法可以将反编译的代码恢复为可理解的代码,或者使用密钥库将其恢复或使用可理解的源代码反编译应用程序 apk 文件?
我真的需要反编译这个 apk 并对其进行一些更改。特别是应用程序源文件。
任何帮助将不胜感激 :)
apk ×10
android ×8
build ×2
release ×2
32bit-64bit ×1
adb ×1
build-error ×1
debugging ×1
flutter ×1
google-play ×1
java ×1
proguard ×1
sdk ×1
signed ×1
signing ×1