I downloaded hypertrack live from github and follow up whole tutorial everything work fine but when i generate signed apk "Error:http error: Internal Error (500)" this error occured some time "Server time out " error occured i try me best but i cannot find a solution in code Sentry.property file is used and there compiles also included in gradle i think this error related to the Sentry server but i am unfamiliar to Sentry and i search a lot on internet but nothing i found. Firstly its gives the deprecation error i give the annotation of surpress warning then only one error occured which is Internal Error (500) please help me to solve this error
here is my build.gradle project level
apply from: 'versioning.gradle'
buildscript {
repositories {
jcenter()
mavenCentral()
maven { url 'https://maven.google.com/' }
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.0'
classpath 'com.google.gms:google-services:3.1.0'
classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.5'
classpath 'io.sentry:sentry-android-gradle-plugin:1.6.4'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
maven { url "https://maven.google.com" }
maven { url 'https://jitpack.io' }
maven { url "https://plugins.gradle.org/m2/" }
maven { url 'http://hypertrack-android-sdk.s3-website-us-west-2.amazonaws.com/' }
google()
}
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint:deprecation" << "-Xlint:unchecked"
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
here is my project level gradle
buildscript {
repositories {
maven { url 'https://jitpack.io' }
maven { url 'https://maven.fabric.io/public' }
mavenCentral()
}
dependencies {
classpath 'io.fabric.tools:gradle:1.25.1'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: 'io.sentry.android.gradle'
repositories {
maven { url 'https://maven.fabric.io/public' }
HyperTrack Repository
maven { url 'http://hypertrack-android-sdk.s3-website-us-west-
2.amazonaws.com/' }
}
sentry {
// Disables or enables the automatic configuration of proguard
// for Sentry. This injects a default config for proguard so
// you don't need to do it manually.
autoProguardConfig true
// Enables or disables the automatic upload of mapping files
// during a build. If you disable this you'll need to manually
// upload the mapping files with sentry-cli when you do a release.
autoUpload true
}
android {
compileSdkVersion 26
buildToolsVersion '27.0.3'
lintOptions {
abortOnError false
checkReleaseBuilds false
}
//Check if Fabric crashlyitcs is configured or not.
def fabricCheck = false;
File fabricPropertiesFile = rootProject.file("app/fabric.properties");
if (fabricPropertiesFile.exists()) {
System.out.println("Fabric File Exist");
def fabricProperties = new Properties()
fabricProperties.load(new FileInputStream(fabricPropertiesFile))
String apiSecret = fabricProperties['apiSecret'];
if (apiSecret != null && !apiSecret.isEmpty() && !apiSecret.equalsIgnoreCase("CRASHLYTICS_API_SECRET")) {
System.out.println("Key Exist");
fabricCheck = true;
} else {
System.out.println("Key Doesnt Exist");
}
}
/*
* Set App version using gradle.properties file
* */
def versionPropsFile = file('gradle.properties')
if (versionPropsFile.canRead()) {
def Properties versionProps = new Properties()
versionProps.load(new FileInputStream(versionPropsFile))
def value = 0
def runTasks = gradle.startParameter.taskNames
if ('cUDD' in runTasks || 'crashlyticsUploadDistributionDebug' in runTasks
|| 'cUDR' in runTasks || 'crashlyticsUploadDistributionRelease' in runTasks) {
value = 1
}
def versionMajor = 4
def versionMinor = 0
def versionPatch = versionProps['VERSION_PATCH'].toInteger() + value
def versionNumber = versionProps['VERSION_NUMBER'].toInteger() + value
versionProps['VERSION_PATCH'] = versionPatch.toString()
versionProps['VERSION_NUMBER'] = versionNumber.toString()
versionProps['version'] = versionMajor + "." + versionMinor + "." + versionPatch
versionProps.store(versionPropsFile.newWriter(), null)
defaultConfig {
applicationId "com.myapplicationid.given"
versionCode 1
versionName "1.0"
minSdkVersion 16
targetSdkVersion 22
resValue "string", "app_name", "HyperTrack Live"
buildConfigField "String", "HYPERTRACK_BASE_URL_V1", '"https://api.hypertrack.com/api/v1/"'
buildConfigField "String", "HYPERTRACK_BASE_URL_V2", '"https://api.hypertrack.com/api/v2/"'
resValue "string", "deeplink_scheme", "com.hypertracklive"
resValue "string", "tracking_url", "trck.at"
manifestPlaceholders = [applicationLabel: "@string/app_name"]
multiDexEnabled true
/* if (keystorePropertiesFile.exists())
signingConfig signingConfigs.release
if (findProject(':library') != null)
buildConfigField "String", "isHyperTrackLive", '"exist"'
else
buildConfigField "String", "isHyperTrackLive", '""'*/
}
} else {
throw new GradleException("Could not read version.properties!")
}
applicationVariants.all { variant ->
variant.outputs.each { output ->
def newFileName = "HyperTrackLive-${variant.versionName}.apk"
def apk = output.outputFile
//System.out.println(apk.parent + ", newfilename: " + newFileName)
output.outputFileName = new File("../", newFileName)
}
}
buildTypes {
debug {
ext.enableCrashlytics = false
}
release {
def keyPropertiesFile = rootProject.file("app/src/release/java/io/hypertrack/sendeta/key.properties")
if (keyPropertiesFile == null || !keyPropertiesFile.exists()) {
throw new GradleException("key.properties file is missing that contains HyperTrack Publishable Key." +
"\nRefer Step 2 at https://github.com/hypertrack/hypertrack-live-android#to-use-this-app for more info.");
}
def keyProperties = new Properties();
keyProperties.load(new FileInputStream(keyPropertiesFile));
if (keyProperties['HYPERTRACK_PUBLISHABLE_KEY'] == "\"HYPERTRACK_PUBLISHABLE_KEY\"") {
throw new GradleException("Publishable Key is Missing in key.properties file.\nRefer Step 2 at https://github.com/hypertrack/hypertrack-live-android#to-use-this-app for more info.");
}
debuggable false
minifyEnabled true
buildConfigField "String", "HYPERTRACK_PK", keyProperties['HYPERTRACK_PUBLISHABLE_KEY']
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
if (!fabricCheck) {
ext.enableCrashlytics = false
}
}
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
testImplementation 'junit:junit:4.12'
testImplementation 'org.mockito:mockito-core:2.8.9'
testImplementation 'org.robolectric:robolectric:3.8'
debugImplementation 'com.facebook.stetho:stetho:1.5.0'
// Other dependencie
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support:design:26.1.0'
implementation 'com.android.support:cardview-v7:26.1.0'
implementation 'com.android.support:recyclerview-v7:26.1.0'
implementation 'com.facebook.stetho:stetho:1.5.0'
compile 'io.sentry:sentry-android:1.7.5'
if (findProject(':library') != null) {
// HyperTrack SDK dependency
implementation(project(':library')) {
transitive = true
}
} else {
implementation("com.hypertrack:android:0.7.21@aar") {
transitive = true;
}
}
implementation('com.crashlytics.sdk.android:crashlytics:2.9.1@aar') {
transitive = true;
}
implementation 'com.android.support.constraint:constraint-layout:1.1.0'
implementation 'com.googlecode.libphonenumber:libphonenumber:8.4.2'
implementation 'com.squareup.retrofit2:retrofit:2.2.0'
implementation 'com.squareup.retrofit2:converter-gson:2.1.0'
implementation 'com.squareup.picasso:picasso:2.5.2'
implementation 'com.github.sundeepk:compact-calendar-view:1.9.2-beta'
implementation 'com.github.rubensousa:gravitysnaphelper:1.1'
implementation 'com.skyfishjy.ripplebackground:library:1.0.1'
implementation 'com.google.android.gms:play-services-ads:15.0.1'
implementation 'com.github.Q42:AndroidScrollingImageView:1.2'
implementation('com.crashlytics.sdk.android:crashlytics:2.6.2@aar') {
transitive = true
}
implementation 'com.android.support:multidex:1.0.3'
// Leak Canary dependency for Debug builds
debugImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.4'
releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.4'
//Check if SDK library exist or not
if (findProject(':library') != null) {
println("Library Exist");
implementation project(':library')
} else {
println("Library Doesn't Exist");
}
}
/*
* Enable FCM integration for real time tracking by adding a google-
services.json
* Once you have either an existing account on <a
href="https://console.developers.google.com/">Google Developer</a> or a new
account <a href="https://console.firebase.google.com">Firebase console</a>,
you will need to add <a
href="https://support.google.com/firebase/answer/7015592">google-
services.json</a> file for your app to remove the below compilation failure.
*/
File googleServicesFile = rootProject.file("app/google-
services.json");
if (googleServicesFile.exists()) {
System.out.println("Google Service File Exist");
apply plugin: 'com.google.gms.google-services'
}
Here are Sentry.Properties
defaults.project=hypertrack-android-sdk
defaults.org=hypertrack-ai
auth.token=6b30a683022e4ae483900445c3cfc1c1b1c76a7b2b324a1db371ede79dce89ee
Here Proguard
enter code here`# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-
android.txt
# You can edit the include path and order by changing the proguardFiles
# directive in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# Add any project specific keep options here:
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
-keepattributes *Annotation*
-keep public class com.google.** {*;}
-keep class com.crashlytics.** { *; }
-keep class com.crashlytics.android.**
-keep class com.facebook.** { *; }
-keep class com.squareup.okhttp.** { *; }
-keep class retrofit2.** { *; }
-keep class io.hypertrack.sendeta.model.** { *; }
-keep class io.hypertrack.sendeta.network.** { *; }
-keep class io.hypertrack.sendeta.store.** { *; }
-keep class maps.** { *; }
-keep class com.hypertrack.lib.** { *; }
-keep interface com.squareup.okhttp.** { *; }
-keepclassmembers class * {
@android.webkit.JavascriptInterface <methods>;
}
-keepattributes JavascriptInterface
-dontwarn com.squareup.okhttp.**
-dontwarn retrofit2.**
-dontwarn okio.**
-dontwarn com.google.android.gms.**
-dontwarn com.hypertrack.lib.**
-keepclasseswithmembers class * {
@retrofit.http.* <methods>;
}
-keepattributes Signature
-keepattributes Exceptions
-keepattributes SourceFile,LineNumberTable
-renamesourcefileattribute SourceFile
-keepattributes *Annotation*
## For Retrofit
-keepattributes Signature
## Other
-dontwarn com.google.common.**
-dontwarn io.branch.**
If i commented the Sentry every thing also work but a long warning and error occured with the message of duplicate entry and io.sentry.* packages
Hoe i can overcome this error and my apk generated successfully, please help me