我知道这是许多人在这里提出的常见问题,但在看到几乎所有相关的帖子后,我仍然不明白。
我有一个可以在真实设备上运行的简单项目(未签名的设备;我从我工作区的bin文件夹中复制粘贴它)。但是,当我导出此签名版本时,它将无法运行,并显示“拒绝访问”。我似乎也无法将apk移入SD卡。而且它不是一个有根的手机。
我尝试在我的AVD模拟器上安装已签名的apk,我在cmd中运行命令,如下所示:
...\sdk\platform-tools> adb -s emulator-5554 install X:\Arya\Android\MyJlm.apk
安装成功,但是当我点击快捷方式时,它显示“App not not installed”。而LogCat说:
03-24 05:12:47.934: W/ActivityManager(370): Permission Denial: starting Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=my.jlm/.Splash } from ProcessRecord{b4fd0b30 528:com.android.launcher/u0a7} (pid=528, uid=10007) not exported from uid 10053
似乎很奇怪,因为我从Eclipse向导“认证”了apk,它创建了从创建新的密钥库到结束的所有内容,我觉得我没有错过任何东西(但如果我错了请纠正我!)
我真的想知道原因是什么?是建立清单,许可等,还是来自手机本身?
谢谢你的关注
答案 0 :(得分:0)
这包含在项目build.gradle文件中
您必须将其放在Android
signingConfigs {
debug {
storeFile file(project.property("MyApp.signing"))
storePassword project.property("MyApp.signing.password")
keyAlias project.property("MyApp.signing.alias")
keyPassword project.property("MyApp.signing.password")
}
}
在Gradle.properties
上执行:
MyApp.signing=../myapp.keystore.jsk
MyApp.signing.password=helloworkd
MyApp.signing.alias=myapp_alias