Android Studio stuck installing application to Device after add jar library - android-studio

I'm setting up a SignalR client with Android. I'm using Android Studio 3.3 with Gradle v3.0.1.
I'm using two SignalR deprecated jar library in project.
- signalr-client-sdk.jar
- signalr-client-sdk-android.jar
The problem starts after adding these two jar dependencies to project.
After adding jar libs, Android Studio suck in installing application on device.
I did same thing in other project on my friend's PC and it works. I don't know whats wrong with this?
=====
UPDATE
I tried with an other device... I installed GenyMotion Emulator and Created several kind of Virtual Machines.
Android Studio is going to install the application on vm with api level 16 but when trying to install on vm with api level 27(8.1) it stuck again.
Screenshot :
I could generate signed apk and install on phone. but can't install directly from Android studio.

UPDATE
Add these lines to your build.gradle of app module, within the android { }:
android {
splits {
abi {
enable true
reset()
include 'x86', 'x86_64', 'armeabi', 'armeabi-v7a', 'mips', 'mips64', 'arm64-v8a'
universalApk true
}
}
packagingOptions {
exclude 'lib/getLibs.ps1'
exclude 'lib/getLibs.sh'
exclude 'lib/gson-2.2.2.jar'
}
}
Old Answer
Try these steps:
Step One: Add this dependency to your build.gradle:
implementation 'com.microsoft.signalr:signalr:1.0.0'
Step Two: Add these lines to your activity:
private final String serverUrl = "put your server url";
private HubConnection hubConnection;
hubConnection = HubConnectionBuilder.create(serverUrl).build();
if (hubConnection.getConnectionState() == HubConnectionState.DISCONNECTED)
hubConnection.start();
if (hubConnection.getConnectionState() == HubConnectionState.CONNECTED)
hubConnection.send("your method name at server", your arguments);
else if (hubConnection.getConnectionState() == HubConnectionState.DISCONNECTED)
hubConnection.start();
As you see at above, you don't need to add two signalR deprecated jar library in project.

Related

Playstore error: App Bundle contains native code, and you've not uploaded debug symbols

When I want to release a new flutter app bundle to the Playstore. I get this error:
"This App Bundle contains native code, and you've not uploaded debug symbols. We recommend you upload a symbol file to make your crashes and ANRs easier to analyze and debug."
I can't find any way to fix this. I'm new with flutter and releasing app's and getting a bit desperate...
Any help would be fantastic.
When I add "android.defaultConfig.ndk.debugSymbolLevel = 'FULL'" (on line 1) to the app/build.gradle as suggested in https://developer.android.com/studio/preview/features#native-crash-symbolization. I get This error in the Android studio terminal. I use this command "flutter build appbundle".
Error in Terminal:
FAILURE: Build failed with an exception.
Where:
Build file 'C:\Users\filip\AndroidStudioProjects\ehbo\android\app\build.gradle' line: 1
What went wrong:
A problem occurred evaluating project ':app'.
Could not get unknown property 'android' for project ':app' of type org.gradle.api.Project.
Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
Get more help at https://help.gradle.org
BUILD FAILED in 3s
Running Gradle task 'bundleRelease'...
Running Gradle task 'bundleRelease'... Done 4,3s
Gradle task bundleRelease failed with exit code 1
Reproduce next steps and this warning will disapear
Go to
[YOUR_PROJECT]\build\app\intermediates\merged_native_libs\release\out\lib
note that 3 folders exist inside
arm64-v8a
armeabi-v7a
x86_64
Select this 3 folder and create a .zip file. Name doesn't matter.
[PLEASE NOTE THAT I HAVEN'T COMPRESSED THE ./lib FOLDER]
Upload this new *.zip file as Symbol File.
.
If talking about Flutter, looks like the Flutter team needs to change some source files for the NDK, because it does not see where from to generate debug symbols.
Here is an issue thread: https://github.com/flutter/flutter/issues/60240
Setup steps are so:
Pre-condition: Intall Android studio 4.1+ and Gradle 4.1+
Install NDK (Side by Side) in SDK manager
Write path to NDK in local.properties
Add in app/build.gradle (last line) android.buildTypes.release.ndk.debugSymbolLevel = 'FULL'
Before you can upload debug symbols files, you must be using Android Gradle plugin version 4.1 or higher.
Looks like it will come only with Android Studio 4.1, because I can only get Gradle 4.0.0 automatically now.
So I suggest you to return classic Play console and it will let you through :)
UPDATE:
So just use an updated Gradle and add NDK debug symbols to the build now
The Answer was given by Shakle will be not useful as per the following message on Play Console.
The old version of Play Console will be discontinued from November 2,
2020 You’re already using the new Play Console, so you don’t need to
do anything. A few features are going away if you want to check them
one last time.
It's just a warning, nothing else. Just go ahead.
If you don't want any warning, Go to this link and follow the steps:
https://support.google.com/googleplay/android-developer/answer/9848633?hl=en
You can use the new version of the play store as it is.
you can make these zip file by go to build\app\intermediates\merged_native_libs\release\out\lib inside your Flutter project
and compress the folders into symbols.zip, now upload it into the google play console
I had a similar problem.
What really helped me:
Make sure your Android Gradle plugin version is 4.1 or later.
Install NDK (Side by Side) in SDK manager.
Install CMake in SDK manager.
Add
ndkVersion <ndkVersion>
ndk {
debugSymbolLevel 'FULL'
}
to app/build.gradle
My final build.gradle:
...
android {
compileSdkVersion 30
defaultConfig {
applicationId "com.example.app"
minSdkVersion 21
targetSdkVersion 30
versionCode 28
versionName "1.0.59"
ndkVersion "23.1.7779620"
ndk {
debugSymbolLevel 'FULL'
}
}
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
configurations {
compile.exclude group: 'com.google.zxing'
}
}
...
I hope this will help you and save you time
If you want to solve this warning error:
This App Bundle contains native code, and you've not uploaded debug symbols. We recommend you upload a symbol file to make your crashes and ANRs easier to analyze and debug. Make sure also to install CMake
This will happen if your gradle version is higher than 4.0
Place this code into your build.gradle file
android {
compileSdkVersion 28
defaultConfig {
applicationId 'com.example.myproject'
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName "1.0.0"
ndk {
debugSymbolLevel 'FULL'
}
}
Instead of creating and uploading zip files, you can include the following to your app\build.gradle file:
buildTypes {
debug {
// This is just here for local testing and is optional.
firebaseCrashlytics {
nativeSymbolUploadEnabled true
unstrippedNativeLibsDir file("build/app/intermediates/merged_native_libs/debug/out/lib")
}
ndk {
debugSymbolLevel 'SYMBOL_TABLE'
}
}
release {
// ..
firebaseCrashlytics { // Insert this
nativeSymbolUploadEnabled true
unstrippedNativeLibsDir file("build/app/intermediates/merged_native_libs/release/out/lib")
}
ndk {
// replace with 'FULL' if you need more info,
// but note that it will increase the file size of your appbundle dramatically.
debugSymbolLevel 'SYMBOL_TABLE'
}
}
}
Here is some documentation for reference:
https://firebase.google.com/docs/crashlytics/ndk-reports#upload-symbols-external-dependencies
And if you're unclear about how to set up automatic uploading of native symbols, try adding this:
buildTypes { ... } // Your build types from the above snippet.
tasks.whenTaskAdded { task ->
if (task.name.startsWith('assemble') && task.name != "assembleReleaseAndroidTest"
&& task.name != "assembleDebugAndroidTest") {
String taskName = "uploadCrashlyticsSymbolFile" + task.name.substring('assemble'.length())
task.finalizedBy taskName
doFirst {
println "Running Gradle task '$taskName'..."
}
}
}
More info for building gradle tasks here:
https://docs.gradle.org/current/userguide/tutorial_using_tasks.html
Also, ensure that you have NDK and CMAKE installed in your IDE's SDK Manager.
Hope that helps!
Simple approach, go to \build\app\intermediates\merged_native_libs\release\out\lib , you will find 3/4 folders , zip those , upload this ZIP from release option ( upload Symbol File ). Warning will be gone after bundle review.
For fixing it in the Visual Studio Code: you should first download
the NDK from the android's website.
Extract the zip file to a folder named ndk and place it under your - already installed - Android SDK folder. Like this: Android/sdk/ndk
Then open app/build.gradle.
Under the Android section. Add ndkPath property as follows: ndkPath = <ndk-dir>
app/build.gradle ndkPath property
At the end of app/build.gradle add android.buildTypes.release.ndk.debugSymbolLevel = 'full'
The next appbundle, built by flutter build appbundle command should not give any errors on the play store about native debug symbols.
a more thorough explanation is here
I just upgraded ndk from 21.4.7075529 to 22.1.7171670, and now I get the debug symbols.
I'm using com.android.tools.build:gradle:7.1.1 and React Natvive 0.69 BTW.
I have the exact same issue.
Possible solutions:
Use the Google classic Play console
Gradle 4.1 is now released with Android Studio 4.1
Could not get unknown property 'android' for project ':app' of type org.gradle.api.Project.
You have to add it in gradle.properties not build.gradle
I was able to get Flutter to build native debug symbols using Android Gradle Plugin (AGP) 4.1.0, installing corresponding NDK version and adding the appropriate config to android/app/build.gradle on macOS (but it should also work on Windows/Linux).
Optional: Run flutter build appbundle and take note of the .aab file size
Check what version of AGP you're using in android/build.gradle by looking in dependencies e.g. com.android.tools.build:gradle:4.1.0 is 4.1.0
Check which version of NDK you need. Assuming your AGP is 4.1.0 the NDK version you want to install is 21.1.6352462 (for other AGP versions check mappings here)
Install specific NDK version using Android Studio. Alternatively you can use sdkmanager and the CLI: $ANDROID_HOME/tools/bin/sdkmanager --install "ndk;21.1.6352462"
In android/app/build.gradle, under android.defaultConfig add ndk { debugSymbolLevel 'FULL' } aka set android.defaultConfig.ndk.debugSymbolLevel = 'FULL' as per this
Run flutter build appbundle. The .aab should now contain native debug symbols and be larger than the previous build in step 0
Troubleshooting: If you get any errors around CMake I didn't explicitly install it but you might need to, especially if you're using Windows, and you can do so using Android Studio.
screenshot
My issue was this:
This App Bundle contains native code, and you've not uploaded debug symbols. We recommend you upload a symbol file to make your crashes and ANRs easier to analyze and debug.
Fix successfully just upload native debug symbols from the image reference directory shown.

Android Studio 4.0 file > New > Activity OR Fragment not working

I have android studio 4.0 installed & I am unable to create new activity OR fragment from File > New menu.
All that happens is just a gradle build & files don't show up after I click the Finish button.
Following is the system environment.
Studio Version: 4.0
SDK build tool: 30
Gradle wrapper: 6.1.1
OS: macOS Catalina (10.15.2)
Machine: MacBook Air (2017
I am using an android navigation UI version: 2.2.2 and also tried to create new activity/fragment from navigation file using New Destination still no result.
Let me know if any other information is required.
Please open your app build.gradle file and delete debug config from signingConfigs and try again:
signingConfigs {
// delete this entire debug block
debug {
storeFile file('file path')
storePassword 'password'
keyPassword 'password'
keyAlias = 'password'
}
}
My solution and I think it might also comes rescue you.You have to update the minSdk version to the required version. You probably the min version required while trying to create the activity.
Follow the step below:
step-1:File--->Project structure
File--->Project structure
step-2: Modules--->Default config
Modules--->Default config
Now set your minSdk to the required value and hit the apply followed by ok.
Hopefully you will get the activity windows now.
This is how I solved it for version 4.1.2:
on the top menu of android studio click on Build --> Clean Project, after that Build --> Rebuild.
It will tell you the error causing trouble, for me it was that android studio did not properly close the manifest tag in the manifest file. Once I closed the tag and rebuilt the project again, everything worked fine.

Android build error: Unable to load 'javax.xml.bind.jaxbexception

I am a beginner in Android. I am not able to resolve this error in Android Studio. Whenever I run my application this error occurs. How do I fix it?
Error: Unable to load class 'javax.xml.bind.JAXBException' Possible
causes for this unexpected error include:
Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.) Re-download dependencies and sync
project (requires network)
The state of a Gradle build process (daemon) may be corrupt. Stopping all Gradle daemons may solve this problem. Stop Gradle build
processes (requires restart)
Your project may be using a third-party plugin which is not compatible with the other plugins in the project or the version of
Gradle requested by the project.
In the case of corrupt Gradle processes, you can also try closing the IDE and then killing all Java processes.
This is my solution
Update Gradle build tool version in project-level Gradle.
dependencies {
classpath 'com.android.tools.build:gradle:7.1.2'
}
And then Android Studio will download and change your gradle-wrapper.properties file.
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip
Sync project, everything is OK.
My problem was resolved when I changed the JDK for each of my Android SDKs:
Project Structure -> Platform Settings\SDKs -> Android API xx Platform -> Change "Java SDK" to 1.8
This resolved the problem;
Also change that the Project SDK to 1.8.
If the problem is not resolved, Please try to run IDE under JDK 8.
This might be too late but maybe some one needs to know the reason:
If you updated android studio to v4.2 and this happened, its because it is build in java 11
You have two options:
change JDK path manually in: Project Structure -> SDK Location
you should update your gradle setting use these two versions or above them:
classpath 'com.android.tools.build:gradle:4.0.0'
distributionUrl=https://services.gradle.org/distributions/gradle-6.5-all.zip
I hope i could save some one's time
Also you can Update your gradle version in project level gradle
classpath 'com.android.tools.build:gradle:4.x.x'
and fixed this issue.
Just upgrade the Gradle version then it will fix the problem
install java 8, and set your JDK path with java 8
File- > Project structure. -> SDK location -> JDK Location
for mac os:
/Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home
First check your gradle-wrapper.properties distributionUrl value and update with latest version of gradle.
distributionUrl=https://services.gradle.org/distributions/gradle-6.1.1-all.zip
this is the one of the possible solutions, It was worked for me.
In app build file, add the options javaCompileOptions{ ... }
android {
…
defaultConfig {
…
//add this options
javaCompileOptions {
annotationProcessorOptions {
includeCompileClasspath = true
}
}
}
…
}

VS 2015 TACO - build broke on Xcode 8 / iOS 10

Here are the issues I encountered and fixed:
Code signing: downloaded the xcode8.js hook and added the following to build.json, per http://www.dpogue.ca/articles/cordova-xcode8.html:
"ios": {
"debug": {
"developmentTeam": "VZ4B5XSP9U"
},
"release": {
"developmentTeam": "VZ4B5XSP9U",
"codeSignIdentity": "iPhone Developer"
}
}
On my Mac, deleted the ~/.taco_home/node_modules/taco-remote-lib/2.2.1 and .../2.2.0 folders, per https://github.com/Microsoft/remotebuild/issues/5.
On my Mac, tried uninstalling and reinstalling remotebuild, and different versions of node and npm (0.12.9 and 4.6, and respective npm versions).
In Visual Studio, tried changing the targeted Cordova version: 6.3.1, 6.2, 6.1.1, and back to 5.4.1.
No matter what I do though, the build gets stuck either on extracted - Extracted app contents from uploaded build request, or building - Updating platform forever.
Earlier, when I tried opening the Xcode project in Xcode on the Mac, it successfully built and deployed the app to the device. I was then facing issues using WebRTC (using cordova-plugin-iosrtc) and it was giving me privacy violation exceptions. I tried adding the cordova-custom-config plugin and appropriate Cocoa keys (NSCameraUsageDescription and NSMicrophoneUsageDescription) per App crashes with __CRASHING_DUE_TO_PRIVACY_VIOLATION__ when trying to access contacts, and then it stopped working altogether.
Can anyone please advise what are the latest versions of all of the components I should be using to make it work again? Some sources advise to use Node 0.12.9 on the Mac, others 0.12.7; most people claim that with Cordova >= 5.3.3, any Node version should suffice, however using Node 4.6 didn't work either.
Thanks in advance for any help!
Update: After performing the brew update etc. as suggested by Jordan, the remote deploy works, but the build sets "Main interface" setting under project's General tab to "NSMainNibFile~ipad", which causes the app to crash on launch, until I open the project in Xcode and clear that field, then an incremental build creates a functioning app.
This is a known issue with Apache Cordova 6.3.1 and for the Visual Studio tools we've been working on a fix for this. To work around the issue for now, you'll need to perform the following steps:
Add a developmentTeam property to the ios build settings in your project's build.json file (an example is shown below).
Set the build.json file's codeSignIdentity property to the static value iPhone Developer.
Setup a before_compile hook in your project to copy the developmentTeam property into the project's platforms/ios/cordova/build.xcconfig file.
The project's build.json file should look something like the following:
{
"ios": {
"debug": {
"developmentTeam": "DEVELOPMENT_TEAM_NAME"
},
"release": {
"developmentTeam": "DEVELOPMENT_TEAM_NAME",
"codeSignIdentity": "iPhone Developer"
}
}
}
To simplify the process, Darryl Pogue published a sample hook that makes the required changes to the project's build.xconfig file based on the build.json example shown above. To use this hook, copy the sample xcode8.js file to your project's hooks folder, and then modify the project's config.xml to execute it before the compilation step using the following code:
<platform name="ios">
<hook type="before_compile" src="hooks/xcode8.js" />
</platform>
Creating a Distribution Build
At this point, the Cordova build process works, and you can run, test and debug your app. Unfortunately, the app isn't being signed with the correct development certificate needed for distribution. In order to sign them with a distribution certificate, you'll need to create an archive of the app by following the instructions found in: Uploading Your App to iTunes Connect.
iOS 10
Developers building Cordova applications for iOS 10 may encounter the following errors:
Http 404: Error mounting developer disk image
Http 500: No devices found to debug. Please ensure that a device is connected and awake and retry.
This is caused by the Mac development environment needing an update to several modules. To fix the issue, on Mac OS, open a terminal window and issue the following command:
brew update && brew upgrade libimobiledevice --HEAD && brew upgrade ios-webkit-debug-proxy ideviceinstaller

Getting PCL, Mvvmcross, Nuget and Xamarin Studio to play "nice" on Mac

Looking at the MvvmCross.PortableSupport.3.0.1.nuspec
I noticed the there is the following line:
<file src="_._" target="lib\portable-win+net45+MonoAndroid16+MonoTouch40+sl40+wp71\_._" />.
I understand that nuget is creating a list of supported frameworks from that list (win+...+sl40+wp71) and that the project to which this library is added must support one of those frameworks. Basically it enumerates the project types to which this can be added.
Now if I try to install this package into a portable project having Profile49 this will work on Windows since Profile49 on Windows is net45+wp80.
However on the Mac the Profile49 is net45+wp80+MonoAndroid10+MonoTouch10.
This means that a nuget package with the supported frameworks win+net45+MonoAndroid16+MonoTouch40+sl40+wp71 cannot be installed on a project of Profile49 on Mac since there are frameworks having a lower version (MonoTouch10 and MonoAndroid10).
Could the string portable-win+net45+MonoAndroid+MonoTouch+sl40+wp71 be used on the mvvmcross side instead? Any reason for the specific versions?
Why do the profiles shipped with Xamarin (e.g. /Library/Frameworks/Mono.framework/External/xbuild-frameworks/.NETPortable/v4.5/Profile/Profile49) include MonoTouch10 and MonoAndroid10?
Thank you for your insights.
Update: If you are using the Alpha channel of Xamarin Studio there is no longer a need to copy PCLs from Windows. You can use v4.0, Profile158, this also works out of the box with Async.
Update: I added instructions on how to get async to work in PCL in this article: Xamarin Studio Mac, Portable class library, Async and Android, so go there after this article if you want to work with async in your PCL.
A sort of working solution to the problem I had to get Mvvm+PCL+Xamarin Studio on Mac to work. See below for the details.
The steps below make things work for Android and PCL projects. For iOS projects Xamarin Studio on Mac is communicating a TargetFramework of MonoTouch,Version=v1.0 to Nuget. Since the mvvm packages contain +MonoTouch40 Nuget refuses to install the packages on the project. A workaround is to add
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
to the .csproj, add the packages with Nuget and set TargetFrameworkVersion back to v1.0.
I have verified the behaviour in Visual Studio. There a project with TargetFramework MonoTouch,Version=v4.0 is reported to the Nuget plugin. This is why the same packages work on Visual Studio an not on Xamarin Studio Mac. I guess this should be corrected to be consistent.
Steps
Xamarin Studio
Make sure to use the Beta or Alpha channel in Xamarin Studio under Mac
Install the Nuget package manager: Xamarin Studio / Add-In Manager
Install .NETPortable into Mono.Framework
Copy the .NETPortable (C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETPortable) folder from a Windows PC to your Mac
Place it under /Library/Frameworks/Mono.framework/External/xbuild-frameworks/.NETPortable/ (Make sure not to overwrite an already existing folder, in case this gets shipped with Xamarin Studio!!!) (see here also)
Patch Nuget
A patched fork can be found here: https://nuget.codeplex.com/SourceControl/network/forks/takoyakich/nuget/latest, take the 2.7 branch. If you want to patch yourself:
git clone https://git01.codeplex.com/nuget
cd nuget
git checkout -b 2.7 origin/2.7
patch -p1 < {patch file saved from below}
cd src/Core
xbuild
cp bin/Debug/NuGet.Core.dll ~/Library/Application\ Support/XamarinStudio-4.0/LocalInstall/Addins/MonoDevelop.PackageManagement.0.6/NuGet.Core.dll
Restart Xamarin Studio if you kept it open.
Test it!
Open Xamarin Studio
Create a new portable library
On the project, go to options, Build/General you should see a dialog letting you choose the Target Frameworks (e.g. .net45+wp8 corresponds to Profile49)
Goto references, Manage Nuget packages, Add Mvvmcross
Follow one of #slodge 's excellent n+1 mvvmcross tutorial videos from here ...
Patch to Nuget.Core.dll:
diff --git a/src/Core/NETPortable/NetPortableProfileTable.cs b/src/Core/NETPortable/NetPortableProfileTable.cs
index 6f6a9ff..edc710c 100644
--- a/src/Core/NETPortable/NetPortableProfileTable.cs
+++ b/src/Core/NETPortable/NetPortableProfileTable.cs
## -49,16 +49,12 ## namespace NuGet
private static NetPortableProfileCollection BuildPortableProfileCollection()
{
var profileCollection = new NetPortableProfileCollection();
- string portableRootDirectory =
- Path.Combine(
- Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86, Environment.SpecialFolderOption.DoNotVerify),
- #"Reference Assemblies\Microsoft\Framework\.NETPortable");
-
+ string portableRootDirectory = GetPortableRootDirectory ();
if (Directory.Exists(portableRootDirectory))
{
foreach (string versionDir in Directory.EnumerateDirectories(portableRootDirectory, "v*", SearchOption.TopDirectoryOnly))
{
- string profileFilesPath = versionDir + #"\Profile\";
+ string profileFilesPath = Path.Combine(versionDir,"Profile");
profileCollection.AddRange(LoadProfilesFromFramework(profileFilesPath));
}
}
## -66,6 +62,22 ## namespace NuGet
return profileCollection;
}
+ private static string GetPortableRootDirectory()
+ {
+ if (IsMonoOnMac ()) {
+ return "/Library/Frameworks/Mono.framework/External/xbuild-frameworks/.NETPortable";
+ }
+ return Path.Combine(
+ Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86, Environment.SpecialFolderOption.DoNotVerify),
+ #"Reference Assemblies\Microsoft\Framework\.NETPortable");
+ }
+
+ static bool IsMonoOnMac ()
+ {
+ // Environment.OSVersion.Platform returns UNIX, didn't find a better way :-(
+ return File.Exists ("/System/Library/CoreServices/Finder.app/Contents/MacOS/Finder");
+ }
+
private static IEnumerable<NetPortableProfile> LoadProfilesFromFramework(string profileFilesPath)
{
if (Directory.Exists(profileFilesPath))
As of February 2014, the steps above are not needed. Using Xamarin Studio 4.3.2, Alpha channel, and nuget addin via adding mrward's addin repository first and then installing nuget addin, I was able to switch the target to p49 and add the HotTuna pack directly to a new PCL project.

Resources