Xây dựng tệp APK không dấu với Android Studio


272

Tôi đang phát triển một ứng dụng Android với Công cụ dành cho nhà phát triển Android. Bây giờ tôi đã thử Android Studio mới, mọi thứ đều hoạt động tốt nếu kết nối điện thoại thông minh của tôi với máy tính và trực tiếp chạy chương trình trong Android Studio. Nhưng bây giờ tôi muốn thử nghiệm chương trình với các điện thoại thông minh khác mà không cần kết nối chúng với máy tính của tôi.

ADT tạo tệp .apk trong "projectname / bin" mỗi khi bạn biên dịch chương trình. Làm thế nào tôi nhìn thấy nó tại thời điểm Android Studio không làm điều đó.

Vì vậy, câu hỏi của tôi là có thể tạo một tệp .apk không dấu với Android Studio không?


10
Về mặt kỹ thuật, những gì bạn muốn là một apk được ký bằng khóa gỡ lỗi. Một apk thực sự không dấu sẽ bị thiết bị từ chối.
Chris Stratton

FYI chúng ta nên luôn luôn thích xuất các ứng dụng đã ký như được trả lời bởi @Nirmal Dhara. Điều này an toàn hơn nhiều.
Mukund

2
@ChrisStratton Nó sẽ luôn bị từ chối?
Saletanth Karumanaghat

Tôi giải quyết nó bằng giải pháp này: stackoverflow.com/a/56201481/8471798
canerkaseler

Câu trả lời:


326

Tôi muốn giới thiệu bạn xây dựng tệp APK của bạn với Gradle:

  • Nhấp vào menu thả xuống trong thanh công cụ ở trên cùng (Mở hộp thoại 'Chỉnh sửa cấu hình Chạy / Gỡ lỗi')
  • Chọn "Chỉnh sửa cấu hình"
  • Nhấp vào "+"
  • Chọn "Lớp"
  • Chọn mô-đun của bạn như một dự án Gradle
  • Trong Nhiệm vụ: nhập assemble
  • Nhấn Run

APK không dấu của bạn hiện được đặt ở

ProjectName\app\build\outputs\apk

Để biết thông tin chi tiết về cách sử dụng Gradle, hướng dẫn này rất phù hợp: Xây dựng với Gradle trong Android Studio . Tôi cũng đã viết một bài đăng trên blog về cách xây dựng APK không dấu bằng Gradle.

Nếu bạn đã chuyển dự án của mình từ IDE khác và không muốn biên dịch lại , bạn có thể tìm thấy tệp APK đã được xây dựng trong IDE mà bạn đã chuyển từ:

  • Nếu bạn đã tạo Dự án với Android Studio, tệp APK sẽ được tìm thấy trong ProjectName/ProjectName/build/apk/...

  • Nhập dự án từ nhật thực: Tệp phải nằm trong cùng thư mục. Đi đến Project- Show in Explorer. Ở đó bạn sẽ tìm thấy thư mục bin nơi chứa tệp APK của bạn.

  • Được nhập từ IntelliJ, vị trí sẽ là ProjectName/out/production/...

Lưu ý bên lề: Như Chris Stratton đã đề cập trong bình luận của mình:

Về mặt kỹ thuật, những gì bạn muốn là một APK được ký bằng khóa gỡ lỗi. Một APK thực sự không dấu sẽ bị thiết bị từ chối.


1
Có tôi đã nhập dự án từ nhật thực. Nhưng tôi là trường hợp thư mục bin không được Android Studio chạm vào. Với một chút tìm kiếm tôi đã tự tìm thấy nó. Trong trường hợp của tôi, .apk được đặt trong "projectname / out / sản xuất / projectname /"
klange

Điều này chỉ nên trong trường hợp nếu bạn chuyển từ IntelliJ
bpoiss

9
Tôi đang tạo dự án trực tiếp với Studio nhưng không có thư mục có tên "bin" trong bất kỳ thư mục nào của dự án. Và trong thư mục "build" chỉ có hai thư mục là "res" và "source" và không có thư mục "bin". bạn có thể gợi ý cho tôi điều gì bây giờ không?
Himanshu Aggarwal

25
Click the dropdown menu in the toolbar at the topĐiều này rất chung chung. Menu thả xuống nào? Thanh công cụ gì?
dthree

3
@dthree bạn có thể nhấp vào "Chạy" trên thanh menu trên cùng và chọn "Chỉnh sửa cấu hình" từ danh sách thả xuống
Gema Megantara

226

Dựa theo Build Unsign APK with Gradle, bạn có thể chỉ cần xây dựng ứng dụng của mình bằng gradle. Để làm điều đó:

  1. nhấp vào menu thả xuống trên thanh công cụ ở trên cùng (thường có biểu tượng android và tên ứng dụng của bạn)
  2. lựa chọn Edit configurations
  3. nhấp vào dấu cộng ở góc trên bên trái hoặc nhấn alt+insert
  4. lựa chọn Gradle
  5. chọn mô-đun của bạn là Gradle project
  6. trong Tasks:nhậpassemble
  7. nhấn OK
  8. nhấn chơi

Sau đó, bạn sẽ tìm thấy 'apk' chưa ký trong thư mục ProjectName\app\build\outputs\apk


1
+ chỉnh sửa build.gradle với android {lintOptions {checkReleaseBuilds false abortOnError false} [....]} và nó hoạt động! cảm ơn bạn
Steffi

Cảm ơn bạn marcin ... Nó đã hoạt động .. Một điều cần chú ý là tôi không thể tìm thấy thư mục "output / apk" trong Android Studio .. Nó chỉ xuất hiện trong hệ thống tệp ..
Govind

Nhiệm vụ 'lắp ráp' không tìm thấy trong dự án gốc 'bin'.
nVentimiglia

Bầu chọn lần 2. Đây phải là câu trả lời đúng. Tôi gặp vấn đề này khi cài đặt android studio sạch với dự án nhập. Bạn phải thực hiện cài đặt thủ công này để nhận bất kỳ tệp apk nào từ bản dựng.
rickfoosusa

Nó hoạt động trong 1.5.1, nhưng thực sự xây dựng toàn bộ apks dự án ngay cả khi mô-đun đơn đã được chọn.
sandrstar

94

Cách dễ nhất, tôi đoán:

  • Mở tab Gradle ở phía bên phải
  • Nhấp đúp vào YourProject /: app / lắp ráp (hoặc lắp rápDebug)
  • Bạn sẽ tìm thấy apk ở đây
    ... / YourProject / app / build / output / apk / app-debug.apk

ảnh chụp màn hình


1
Cảm ơn, đơn giản hơn nhiều so với câu trả lời được chấp nhận và cho phép không xây dựng apk mỗi lần chạy
Irhala

42

chỉ cần truy cập BUILD-> Build APK và thế là xong


8
+1. Một phương pháp RẤT đơn giản. BTW, bạn có thể tìm thấy APK được tạo tạiAndroidStudioProjects/<APP NAME>/app/build/outputs/apk/debug/app-debug.apk
Spikatrix

đơn giản như vậy, cảm ơn bạn rất nhiều, nó đã làm việc, đánh giá cao nó.
Zeyad

23

Bước 1 Mở studio android. Xây dựng -> Tạo APK đã ký. bây giờ bấm vào APK Tạo APK đã ký.

nhập mô tả hình ảnh ở đây

Bước 2

nhập mô tả hình ảnh ở đây

Nhấp vào Tạo mới.

Bước 3

Điền chi tiết và nhấn ok. nhập mô tả hình ảnh ở đây

jks chi tiết chính, Nó sẽ quay trở lại cửa sổ trước.

nhập mô tả hình ảnh ở đây

Nhấn Next và cung cấp mật khẩu mà bạn đã lưu trong khóa.

Bước 4

nhập mô tả hình ảnh ở đây

Bây giờ bấm vào Kết thúc và chờ đợi để hoàn thành quá trình xây dựng.

nhập mô tả hình ảnh ở đây

Bây giờ apk được tạo thành công. Bấm hiển thị trong Explorer.

nhập mô tả hình ảnh ở đây

Nếu bạn cần biết thêm chi tiết, vui lòng truy cập và kiểm tra bản demo trực tiếp http://javaant.com/how-to-make-apk-file-in-android-studio/#.VwenedZN96Hs


3
Câu hỏi yêu cầu apk không dấu
ravelinx

18

Trong Studio Android:

  1. Xây dựng

  2. Xây dựng APK

  3. Đợi và đi đến vị trí hiển thị trong cửa sổ bật lên. Ở phía dưới bên phải

nhập mô tả hình ảnh ở đây


14

Có, có thể tạo .apk không dấu với Android Studio!

Làm nổi bật Dự án trong trình thám hiểm gói hoặc cột dự án của bạn và sau đó File- Project Structure- Artifacts- +- Android Application- From module 'your app'và sau đó bạn có thể thay đổi vị trí và một số tùy chọn khác. Tôi cho phép xây dựng trên thực hiện, chỉ để dễ dàng.


nó hiện lên thông báo "Chúng tôi sẽ cung cấp giao diện người dùng để định cấu hình cài đặt dự án sau. Cho đến lúc đó, vui lòng chỉnh sửa thủ công tệp build.gradle của bạn" Bây giờ tôi phải làm gì?
Himanshu Aggarwal

8
và điều gì sẽ xảy ra nếu tôi không có bất kỳ Đồ tạo tác nào trong đó?
sóc

Nhấn dấu cộng ở trên cùng bên trái và bạn có thể truy cập Ứng dụng Android
CACuzcatlan

jetbrains.com/idea/webhelp/artifacts.html điểm sử dụng cổ vật là gì? Tôi nghĩ rằng nó là để tạo ra một apk gỡ lỗi apk không dấu, v.v. nhưng có vẻ như bạn chỉ cần vào thư mục build / apk để lấy apk không dấu miễn là bạn chạy trình biên dịch chương trình từ trình đơn lớp (ít nhất là trong IDE intellij). Tôi chỉ định cấu hình một vật phẩm nhưng tôi gặp khó khăn khi tìm hiểu phải làm gì với nó. Ai đó có thể vui lòng giúp làm rõ sự khác biệt và sử dụng hoặc chỉ cho tôi đi đúng hướng?
cjayem13

@ cjayem13 Một số dự án không sử dụng Gradle.
Marc Plano-Lesay

11

Với Android Studio 2.2.3 trên OSX, tôi chỉ sử dụng menu trên cùng:

Build > Build APK

Nó mở Finder với .apktập tin. Điều này sẽ không tạo ra một APK đã ký. Bạn có thể chọn Generate Signed APKtừ cùng một menu nếu cần.


Tôi đã cố gắng tạo APK có chữ ký nhưng nó đang yêu cầu đường dẫn lưu trữ khóa. Điều gì được cho là được cung cấp ở đó?
mã hóa

11
Build -> Build APK     //unsigned app


Build -> Generate Signed APK  //Signed app

11

AndroidStudio 3.4


Sau khi Grade Build Runninghoàn thành, bạn sẽ thấy thông báo ở góc dưới bên phải như thế nào.

Nhấp vào locatevà bạn sẽ thấy APK có thể sửa lỗi của bạn


10

Chỉ cần truy cập Ứng dụng của bạn \ app \ build \ output \ apk

và sao chép cả vào điện thoại và cài đặt ứng dụng-debug.apk


1
Có thực sự cần thiết để sao chép cả hai tập tin?
Vahid Ghadiri

4

Theo dõi công việc cho tôi:

Giữ trống cài đặt sau nếu bạn đã thực hiện trong build.gradle.

signingConfigs {
        release {
            storePassword ""
            keyAlias ""
            keyPassword ""
        }
    }

và chọn Gradle Task từ cửa sổ Editor của bạn. Nó sẽ hiển thị danh sách của tất cả các hương vị nếu bạn đã tạo ra.

nhập mô tả hình ảnh ở đây


3

--- Tạo cấu hình mới trong SignConfigs

unsigned {
        //do not sign
    }

--- Tạo kiểu xây dựng trong buildTypes

unsigned {
        versionNameSuffix '-unsigned'
    }

--- Đi đến xây dựng các biến thể và chọn tiêu chuẩn không dấu. Xây dựng dự án.

--- Chuyển đến "đầu ra / apk" và tìm "XXX-unsign.apk". Để kiểm tra xem nó chưa được ký, hãy thử cài đặt nó vào thiết bị - bạn sẽ thất bại.


Điều này không hoạt động. Bạn cần xác định SigninigConfig khác một chút (lấy từ stackoverflow.com/a/18121401/624109 )signingConfigs{ unsigned{ storePassword = "" keyAlias = "" keyPassword = "" } }
Muzikant

1

Bây giờ trong Android Studio v1.1.0 sẽ là:

  1. chọn Run>Run <your app>
  2. tìm tập tin .apk trong <your app>\build\outputs\apk

Tôi đang sử dụng 1.2.1.1 nhưng cách tiếp cận của bạn không hiệu quả. Tôi phải tạo ra một hội đồng Gradle!
lập trình viên

0

Android studio cũng tạo tệp apk mỗi lần biên dịch chương trình, chỉ cần vào thư mục không gian làm việc của bạn và tìm ứng dụng-> build-> đầu ra-> sau đó bạn có thể thấy tệp apk.


0

Bạn có thể nhấp vào menu thả xuống gần nút chạy trên thanh công cụ,

  1. Chọn "Chỉnh sửa cấu hình"
  2. Nhấp vào "+"
  3. Chọn "Lớp"
  4. Chọn mô-đun của bạn làm dự án Gradle
  5. Trong Nhiệm vụ: nhập lắp ráp

Bây giờ bấm ok,

tất cả những gì bạn cần làm bây giờ là chọn cấu hình của bạn từ danh sách thả xuống và nhấn nút chạy. Nó sẽ tốn chút thời gian. Apk chưa ký của bạn hiện nằm ở

Project\app\build\outputs\apk

0

Tôi giải quyết nó!

Trước hết, bạn nên thêm những điều sau:

defaultConfig { 
 multiDexEnabled true
}

dependencies {
 implementation 'com.android.support:multidex:1.0.3'
}

Sau đó, bạn nên nhấp vào Xây dựng trong thanh trên cùng của Android Studio:

Build > Build Bundle (s) / APK (s)> Build APK (s)

Cuối cùng, bạn có tệp app-debug.apk trong:

ứng dụng> xây dựng> đầu ra> apk> gỡ lỗi> ứng dụng-debug.apk

Lưu ý : các tệp apk, debug, app-debug.apk được tạo tự động trong tệp đầu ra của Android Studio.


0

Các bước để tạo APK không dấu

Lưu ý: Về mặt kỹ thuật, những gì bạn muốn là một APK được ký bằng khóa gỡ lỗi. Một APK thực sự không dấu sẽ bị thiết bị từ chối. Vì vậy, APK chưa ký sẽ báo lỗi nếu bạn cài đặt trong thiết bị.


tôi đã gặp lỗi của anh ấy 'Không thể đặt thư mục làm việc theo quy trình thành' C: \ Users \ marad \ .gradle \ daemon \ 5.2.1 \ Ứng dụng của tôi ': không thể đặt thư mục hiện tại (errno 2)'
ass-king một số câu hỏi

0

Đối với APK không dấu: Đơn giản chỉ cần đặt SignConfig null. Nó sẽ cung cấp cho bạn appName-debug-unsign.apk

debug {
     signingConfig null
}

Và xây dựng từ menu Build. Thưởng thức

Đối với APK đã ký:

signingConfigs {
        def keyProps = new Properties()
        keyProps.load(rootProject.file('keystore.properties').newDataInputStream())
        internal {
            storeFile file(keyProps.getProperty('CERTIFICATE_PATH'))
            storePassword keyProps.getProperty('STORE_PASSWORD')
            keyAlias keyProps.getProperty('KEY_ALIAS')
            keyPassword keyProps.getProperty('KEY_PASSWORD')
        }
    }
    buildTypes {
        debug {
            signingConfig signingConfigs.internal
            minifyEnabled false
        }
        release {
            signingConfig signingConfigs.internal
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

tập tin keystore.properies

CERTIFICATE_PATH=./../keystore.jks
STORE_PASSWORD=password
KEY_PASSWORD=password
KEY_ALIAS=key0
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.