2017-08-10 35 views
2

在我們開始之前,讓我解釋一下的假設:用大寫包名製作APK在Android Studio中

  1. 我知道這是不好的約定有大寫包名。在我的情況下,我們正在處理一個第三方發佈的android應用程序與大寫的軟件包名稱,不幸的是應用程序有數百萬次下載,所以重新發布不是一個選項。

  2. 我已經做了廣泛的研究並不能找到解決辦法,最近的SO問題是thisthisthis

問題:

應用程序最初是用eclipse開發的,它可以創建應用程序簽署已資本化的包名。現在應用程序必須移動到AS,它拒絕使用大寫包名稱生成已簽名的apk。請參閱下面的錯誤:

enter image description here

這裏是我的清單文件中的相關部分:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="TESTING.CAPITALIZED" 

... 

<meta-data 
     android:name="com.google.android.gms.version" 
     android:value="@integer/google_play_services_version" /> 

<activity 
     android:name="TESTING.CAPITALIZED.Activity_xxx" 
... 

請注意,我試圖改變清單活動標記的命名約定:(但同樣的錯誤)

<activity 
     android:name=".Activity_xxx" 
... 

問題:

我們需要一個方法/在Android Studio中破解過去這個。我不在乎如何或如果涉及編輯dll等魔法,需要在AS中生成簽名的apk。

附加調查結果:看來在Android Studio中,只要包中的第一個字母是小寫,我們就可以編譯並生成apk。例如,在我的例子中,如果我將我的項目重構爲zTESTING.CAPITALIZED,我可以成功生成apk。但是這並不能解決我的問題,因爲我的客戶端的軟件包名稱都是大寫字母。

+0

您應該不會在Android Studio中編譯它。官方文檔https://developer.android.com/guide/topics/manifest/manifest-element.html表示軟件包名稱可以是「Android應用程序的完整Java語言風格的軟件包名稱,名稱應該是唯一的。名稱可能包含大寫或小寫字母('A'到'Z'),數字和下劃線('_')。但是,單個包名稱部分只能以字母開頭。「 –

+0

@amod,yes我知道我可以編譯,但我的問題要求生成簽名的apk。我們需要更新這個應用程序,編譯在一臺機器上是沒有用的。生成apk然後上傳到商店是我們的目標。 – Bqin1

+0

根據官方文件,不論我們使用Android Studio還是Eclilpse都不應該有任何問題。它允許小寫或大寫的組合。你能發佈你正在接受什麼確切的錯誤? –

回答

2

如果有人正在尋找答案,則此問題已在Android Studio 3.0 RC1中解決。如果您遇到任何問題,請參閱Google問題跟蹤程序並更新。 https://issuetracker.google.com/issues/64595077

+0

我會盡快嘗試,當我得到回家,如果有效,你一定會被接受的答案。我的手指交叉了! – Bqin1

+0

請確保您安裝了正確版本的Google Studio Google跟蹤器 –

+1

,並且已經安裝了該工具!非常感謝:) – Bqin1

相關問題